首先來介紹下兩個基本的概念,程序和執行緒。
執行緒:包含在程序之中,是程序中的實際運作單位。程序通過呼叫執行緒,完成不同的功能。
乙個物件是否是執行緒安全的,取決於它是否被多個執行緒同時訪問。其實,與其說執行緒安全,倒不如說資源安全更為貼切。所以對執行緒安全給出乙個確切的定義是非常複雜的,在網上可以搜到很多定義,比如:
2、可以同時被多個執行緒呼叫,而呼叫者無需執行額外的動作;
正確性的含義是,某個類的行為與其規範完全一致。也就是**按照我們的定義,能夠正確的處理物件以得到我們想要的結果(換句話說,就是指某個類在併發環境和單執行緒環境中都不會被破壞)。所以,執行緒安全性可以定義為:當多個執行緒訪問某個類時,這個類始終都能表現出正確的行為,那麼就稱這個類是執行緒安全的。也就是當多個執行緒訪問某個類時,不管執行時環境採用何種排程方式或者這些執行緒將如何交替執行,並且在主調**中不需要任何額外的同步或者協同,這個類都能表現出正確的行為,那麼就稱這個類是執行緒安全的。
其實,執行緒安全型,是圍繞著"正確性"來理解的。
什麼是執行緒安全
如果你的 所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段 如果每次執行結果和 單執行緒執行的結果是一樣的,而且其他的 變數的值也和預期的是一樣的,就是執行緒安全的。或者說 乙個類或者程式所提供的介面對於執行緒來說是 原子操作或者多個執行緒之間的切換不會導致該介面的執行結果存在二義...
什麼是執行緒安全
執行緒安全現在還沒有明確的定義,有如下通俗的理解記錄如下 當乙個類被多個執行緒進行訪問並且正確執行,它就是執行緒安全的。當多個執行緒訪問某各類時,不管執行時環境採用何種排程方式或者這些執行緒將如何交替執行,並且在主調 中不需要任何額外的同步或者協同,這個類都能表現出正確的行為,那麼就稱這個類是執行緒...
什麼是執行緒安全 死鎖
1 執行緒安全 每個程序都會被系統分配一塊公共區域,該區域就是堆 記憶體 該程序的所有執行緒都能訪問該堆 記憶體 的資料,在不受限制的情況下存在被意外修改的風險,這就是執行緒安全。存在競爭的執行緒就是不安全的,不存在競爭的執行緒就是安全的。2 死鎖 所謂死鎖是指多個併發執行緒因競爭系統資源而處於互相...