成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術文章
文章詳情頁

Java Lock鎖多線程中實現流水線任務

瀏覽:81日期:2022-09-02 09:58:12

下面程序代碼通過使用Lock鎖執行簡單的流水線任務:

import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @author lzq * @data 2020/4/29 0029 - 下午 9:48 */public class TestLock { public static void main(String[] args) { DataSource dataSource=new DataSource(); new Thread(() -> { for (int i=0;i<10;i++){dataSource.a(); } },'A').start(); new Thread(() -> { for (int i=0;i<10;i++){dataSource.b(); } },'B').start(); new Thread(() -> { for (int i=0;i<10;i++){dataSource.c(); } },'C').start(); }}class DataSource{ private int x=1; private Lock lock=new ReentrantLock(); private Condition condition1=lock.newCondition(); private Condition condition2=lock.newCondition(); private Condition condition3=lock.newCondition(); public void a(){ lock.lock(); try { while(x!=1){condition1.await(); } System.out.println(Thread.currentThread().getName()+':aaa'); x=2; condition2.signal(); } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.unlock(); } } public void b(){ lock.lock(); try { while(x!=2){condition2.await(); } System.out.println(Thread.currentThread().getName()+':bbb'); x=3; condition3.signal(); } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.unlock(); } } public void c(){ lock.lock(); try { while(x!=3){condition3.await(); } System.out.println(Thread.currentThread().getName()+':ccc'); x=1; condition1.signal(); } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.unlock(); } }}

執行結果如下:

Java Lock鎖多線程中實現流水線任務

對于上面代碼簡單分析:代碼中包含簡單的生產者消費者流程和Lock實現三部曲,即重復判斷條件,執行邏輯,喚醒其他線程和產生鎖,加鎖,解鎖。注意這里一點,條件判斷一定要重復判斷,不然可能會導致線程假醒影響結果。

因為當線程處于等待狀態時,線程會釋放資源,等到被喚醒的時候,從上次await的地方醒來繼續執行,這時條件判斷成立,執行await,其他線程再修改條件使得本線程被喚醒,此時本線程不會繼續判斷,而是繼續執行,如果使用循環判斷就能檢驗出條件被修改。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 奇米888四色在线精品 | 欧美人成片免费看视频不卡 | 欧美videos另类齐全 | 亚洲成人播放 | 永久精品免费影院在线观看网站 | 手机看黄av免费网址 | 99精品在线看 | 中文字幕欧美日韩一 | 久久免费视频在线 | 国产男女免费完整视频 | 日韩精品一区二区三区乱码 | 一色屋精品亚洲香蕉网站 | 一级爱爱片一级毛片-一毛 一级爱做片免费观看久久 一级白嫩美女毛片免费 | 亚洲精品一区二区三区在线看 | 怡红院日本一道日本久久 | 欧美日韩一区二区在线视频 | 午夜a一级毛片一.成 | 美女扒开腿让男生桶爽网站 | 久久久久88色偷偷免费 | 国产成人a毛片在线 | 99在线精品视频 | 国产一区视频在线 | 手机在线成人精品视频网 | 国产欧美日韩视频免费61794 | 亚洲欧美一区在线 | 91视频久久| 免费国产精品视频 | 国产精品视频一区二区三区 | 又黄又刺激下面流水的视频 | 欧美精品久久久久久久免费观看 | 国产乱理片在线观看夜 | 久操免费在线视频 | 久色视频在线 | 人久热欧美在线观看量量 | 久精品在线观看 | 亚洲男人的天堂久久香蕉 | 国产视频中文字幕 | 日韩免费高清一级毛片 | 国产日本一区二区三区 | 怡红院在线a男人的天堂 | 手机看片免费基地 |