.NET面試題系列(六)多線程


1.多線程的三個特性:原子性、可見性、有序性

  原子性:是指一個操作是不可中斷的。即使是多個線程一起執行的時候,一個操作一旦開始,就不會被其他線程干擾。

      比如,對於一個靜態全局變量int i,兩個線程同時對它賦值,線程A給他賦值為1,線程B給他賦值為-1。那么不管這兩個線程

      以何種方式。何種步調工作,i的值要么是1,要么是-1.線程A和線程B之間是沒有干擾的。這就是原子性的一個特點,不可被中斷。

  可見性:是指當一個線程修改了某一個共享變量的值,其他線程是否能夠立即知道這個修改。顯然,對於串行來說,可見性問題是不存在的。

  有序性:在並發時,程序的執行可能會出現亂序。給人的直觀感覺就是:寫在前面的代碼,會在后面執行。有序性問題的原因是因為程序在

      執行時,可能會進行指令重排,重排后的指令與原指令的順序未必一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM