亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

Java多線程通信方法

時間:2024-09-03 12:17:27 java語言 我要投稿
  • 相關(guān)推薦

Java多線程通信方法

  導語:多線程間通訊就是多個線程在操作同一資源,但是操作的動作不同,下面讓我們了解一下吧!

  多線程通信方法

  (1)為什么要通信

  多線程并發(fā)執(zhí)行的時候, 如果需要指定線程等待或者喚醒指定線程, 那么就需要通信.比如生產(chǎn)者消費者的問題,

  生產(chǎn)一個消費一個,生產(chǎn)的時候需要負責消費的進程等待,生產(chǎn)一個后完成后需要喚醒負責消費的線程,

  同時讓自己處于等待,消費的時候負責消費的線程被喚醒,消費完生產(chǎn)的產(chǎn)品后又將等待的生產(chǎn)線程喚醒,

  然后使自己線程處于等待。這樣來回通信,以達到生產(chǎn)一個消費一個的目的。

  (2)怎么通信

  在同步代碼塊中, 使用鎖對象的wait()方法可以讓當前線程等待, 直到有其他線程喚醒為止.

  使用鎖對象的notify()方法可以喚醒一個等待的線程,或者notifyAll喚醒所有等待的線程.

  多線程間通信用sleep很難實現(xiàn),睡眠時間很難把握。

  停止線程的方法:

  stop方法已經(jīng)過時,如何停止線程?

  停止線程的方法只有一種,就是run方法結(jié)束。如何讓run方法結(jié)束呢?

  開啟多線程運行,運行代碼通常是循環(huán)體,只要控制住循環(huán),就可以讓run方法結(jié)束,也就是結(jié)束線程。

  特殊情況:當線程屬于凍結(jié)狀態(tài),就不會讀取循環(huán)控制標記,則線程就不會結(jié)束。

  為解決該特殊情況,可引入Thread類中的Interrupt方法結(jié)束線程的凍結(jié)狀態(tài);

  當沒有指定的方式讓凍結(jié)線程恢復到運行狀態(tài)時,需要對凍結(jié)進行清除,強制讓線程恢復到運行狀態(tài)

【Java多線程通信方法】相關(guān)文章:

java的多線程09-09

java多線程08-31

java單線程多線程的實現(xiàn)與方法09-25

java多線程-線程通信實例詳細解讀07-07

JAVA多線程之線程間的通信方式解析07-14

java多線程介紹08-23

java語言的多線程08-29

java多線程教程11-03

關(guān)于Java多線程介紹09-09

Java多線程問題總結(jié)10-24