lock交替打印_面试题Synchronized实现两个线程交替打印
生活随笔
收集整理的這篇文章主要介紹了
lock交替打印_面试题Synchronized实现两个线程交替打印
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????線程之間的通信有很多種方式,使用Synchronized實現兩個線程的交替打印,主要是利用Object對象的wait、notify方法,下面來看下代碼:
????解釋一下上面的程序,首先定義一個內部類,實現say方法,say方法主要通過入參判斷執行打印A還是打印B,進入后,如果是進去打印A分支,先鎖住lock對象,然后判斷是否需要打印,如果不需要則調用lock.wait()進入等待隊列,釋放鎖,然后進去打印B分支,先是鎖定lock對象,判斷打印標識,進行打印之后修改打印標識,喚醒等待隊列中的A重新獲取鎖。
Object:
????wait()? ? ? ?:?表示持有對象鎖的線程準備釋放對象鎖權限,釋放cpu資源并進入等待隊列,,需要notify ,notifyAll才能喚醒。
????notify()? ? :?表示持有對象鎖的線程準備釋放對象鎖權限,通知jvm喚醒某個競爭該對象鎖的線程X。
??? notifyAll():表示持有對象鎖的線程準備釋放對象鎖權限,通知jvm喚醒所有競爭該對象鎖的線程。
總結
以上是生活随笔為你收集整理的lock交替打印_面试题Synchronized实现两个线程交替打印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wayland与linux_将Linux
- 下一篇: ios开发 方形到圆的动画_画个圆动画,