国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

java編程計(jì)算器程序代碼 如何用Java實(shí)現(xiàn)跨線程通信?

如何用Java實(shí)現(xiàn)跨線程通信?synchronized關(guān)鍵字用于實(shí)現(xiàn)線程間的通信。這種方式本質(zhì)上是“共享內(nèi)存”通信。多個(gè)線程需要訪問(wèn)同一個(gè)共享變量。誰(shuí)拿到鎖誰(shuí)就可以執(zhí)行。如果線程a改變了條件,線程B會(huì)

如何用Java實(shí)現(xiàn)跨線程通信?

synchronized關(guān)鍵字用于實(shí)現(xiàn)線程間的通信。

這種方式本質(zhì)上是“共享內(nèi)存”通信。多個(gè)線程需要訪問(wèn)同一個(gè)共享變量。誰(shuí)拿到鎖誰(shuí)就可以執(zhí)行。

如果線程a改變了條件,線程B會(huì)通過(guò)while語(yǔ)句不斷檢查條件是否為真,從而實(shí)現(xiàn)線程間的通信。但是這種方法會(huì)浪費(fèi)CPU資源。您可以參考以下示例:

wait()方法可以使線程進(jìn)入等待狀態(tài),notify()方法可以使等待狀態(tài)喚醒。這種同步機(jī)制非常適合生產(chǎn)者和消費(fèi)者模式:消費(fèi)者消費(fèi)資源,生產(chǎn)者生產(chǎn)資源。

當(dāng)資源丟失時(shí),使用者調(diào)用wait()方法阻止自身并等待生產(chǎn)者生成。生產(chǎn)者生產(chǎn)后,消費(fèi)者調(diào)用notify/notifyall()喚醒消費(fèi)者進(jìn)行消費(fèi)。

使用管道通信java.io.PipedInputStream文件& ampjava.io.PipedOutputStream前兩個(gè)是面向字節(jié)的,后兩個(gè)是面向字符的。以下是一些示例: