線程同步

上一篇介紹了如何開啟線程,線程間相互傳遞參數,及線程中本地變量和全局共享變量區(qū)別。

本篇主要說明線程同步。

如果有多個線程同時訪問共享數據的時候,就必須要用線程同步,防止共享數據被破壞。如果多個線程不會同時訪問共享數據,可以不用線程同步。

線程同步也會有一些問題存在:

  1. 性能損耗。獲取,釋放鎖,線程上下文建切換都是耗性能的。

  2. 同步會使線程排隊等待執(zhí)行。

    線程同步的幾種方法:

阻塞

當線程調用Sleep,Join,EndInvoke,線程就處于阻塞狀態(tài)(Sleep使調用線程阻塞,Join、EndInvoke使另外一個線程阻塞),會立即從cpu退出。(阻塞狀態(tài)的線程不消耗cpu)

當線程在阻塞和非阻塞狀態(tài)間切換時會消耗幾毫秒時間。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式