線程同步

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

本篇主要說(shuō)明線程同步。

如果有多個(gè)線程同時(shí)訪問(wèn)共享數(shù)據(jù)的時(shí)候,就必須要用線程同步,防止共享數(shù)據(jù)被破壞。如果多個(gè)線程不會(huì)同時(shí)訪問(wèn)共享數(shù)據(jù),可以不用線程同步。

線程同步也會(huì)有一些問(wèn)題存在:

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

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

    線程同步的幾種方法:

阻塞

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

當(dāng)線程在阻塞和非阻塞狀態(tài)間切換時(shí)會(huì)消耗幾毫秒時(shí)間。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式