日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

锁 唤醒_Java笔记|等待唤醒机制

發布時間:2025/3/15 java 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 锁 唤醒_Java笔记|等待唤醒机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

等待喚醒案例分析:線程之間的通信

創建一個顧客線程(消費者):告知老板要的包子的種類和數量,調用wait方法,放棄cpu的執行,進入到WAITING狀態(無限等待)
創建一個老板線程(生產者):花了5秒做包子,做好包子之后,調用notify方法,喚醒顧客吃包子

注意:
顧客和老板線程必須使用同步代碼塊包裹起來,保證等待和喚醒只能有一個在執行
同步使用的鎖對象必須保證唯一
只有鎖對象才能調用wait和notify方法

Obejct類中的方法
Void wait()
在其他線程調用此對象的notify()方法或notifyAll()方法前,導致當前線程等待
Void notify()
喚醒在此對象監視器上等待的單個線程
會繼續執行wait方法之后的代碼

Object類中wait帶參方法和notify
進入到TimeWaiting(計時等待)有兩種方式:
1、使用sleep(long m)方法,在毫秒值結束之后,線程睡醒進入到Runnable/Blocked狀態
2、使用wait(long m)方法,wait方法如果在毫秒值結束之后,還沒有被notify喚醒,就會自動醒來,線程睡醒進入到Rummable/Blocked狀態

調用wait和notify方法需要注意的細節:
1、wait方法和notify方法必須要由同一個鎖對象調用。因為:對應的鎖對象可以通過notify喚醒使用同一個鎖對象調用的wait方法后的線程。
2、Wait方法和notify方法是屬于Object類的方法的。因為:鎖對象可以是任意對象,而任意對象的所屬類都是繼承了Object類的。
3、Wait方法和notify方法必須要在同步代碼塊或者是同步函數中使用的。因為:必須通過鎖對象調用這2個方法。
喚醒方法:
Void notify()喚醒在此對象監視器上等待的單個線程。
Void notifyAll()喚醒在此對象監視器上等待的所有線程。

線程間通信

1、為什么要處理線程間通信?
多個線程并發執行時候,在默認情況下CPU是隨機切換線程的,當我們需要多個線程來共同完成一件任務,并且我們希望他們有規律的執行,那么多線程之間需要一些協調通信,以此來幫我們達到多線程共同操作一份數據。

2、如何保證線程間通信有效利用資源?
多個線程在處理同一個資源,并且任務不同時,需要線程通信來幫助解決線程之間對同一個變量的使用或操作。就是多個線程在操作同一份數據時,避免對同一共享變量的爭奪。也就是我們需要通過一定的手段使各個線程能有效的利用資源。而這種手段即————等待喚醒機制

等待喚醒機制代碼實現_包子類和吃貨類 分析:需要哪些類 資源類:包子類 設置包子屬性: 皮 餡 包子的狀態:有true,沒有false生產者(包子鋪):是一個線程類,可以繼承Thread 設置線程任務(run):生產包子 對包子的狀態進行判斷 true:有包子包子鋪調用wait方法進入等待狀態 false:沒有包子包子鋪生產包子增加一些趣味性:交替生產兩種包子有兩種狀態(i%2==0)包子鋪生產好了包子修改包子的狀態為true有喚醒吃貨線程,讓吃貨線程吃包子

注意:

包子鋪線程和包子線程關系:通信(互斥)必須同時同步技術保證兩個線程只能有一個在執行鎖對象必須保證唯一,可以使用包子對象作為鎖對象包子鋪類和吃貨類就需要把包子對象作為參數傳遞進來1、需要在成員位置創建一個包子變量2、使用帶參數構造方法,為這個包子變量賦值 消費者(吃貨)類:是一個線程類,可以繼承Thread 設置線程任務(run):吃包子 對包子的狀態進行判斷 false:沒有包子吃貨吃包子吃貨吃完包子修改包子的狀態為false沒有吃貨喚醒包子鋪線程,生產包子 測試類: 包含main方法,程序執行的入口,啟動程序 創建包子對象; 創建包子鋪線程,開啟,生產包子; 創建吃貨線程,開啟,吃包子;

總結

以上是生活随笔為你收集整理的锁 唤醒_Java笔记|等待唤醒机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。