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

您的位置:首頁技術(shù)文章
文章詳情頁

Java Lock鎖多線程中實現(xiàn)流水線任務(wù)

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

下面程序代碼通過使用Lock鎖執(zhí)行簡單的流水線任務(wù):

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(); } }}

執(zhí)行結(jié)果如下:

Java Lock鎖多線程中實現(xiàn)流水線任務(wù)

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 美女黄视频在线 | 国产网站在线 | 亚州不卡| 狠狠色综合久久婷婷 | 99热热久久这里只有精品166 | 久久er热视频在这里精品 | 欧美一区二区三区久久综合 | 加勒比久久综合 | 免费看片aⅴ免费大片 | 国产色视频一区二区三区 | 欧美人成在线观看ccc36 | 久草资源在线视频 | 免费观看性欧美毛片 | 久草视频手机在线观看 | 欧美日韩一区二区三区在线播放 | 欧美日韩性视频一区二区三区 | 国产成人a大片大片在线播放 | 欧美日韩高清在线观看一区二区 | 91香蕉国产线观看免 | 成人午夜免费视频 | 欧美在线一区二区三区欧美 | 颜值超高的女神啪啪 | 日韩一区二区三区在线免费观看 | 国产三级日产三级韩国三级 | 澳门一级毛片手机在线看 | 国产在线不卡视频 | 国产香蕉成人综合精品视频 | 91成人影院 | 中国老妇另类xxxx | 国产精品视_精品国产免费 国产精品视频久 | 国产精品揄拍一区二区 | 日日摸日日碰夜夜97 | 国产精品一 | 中国欧美一级毛片免费 | 曰本美女高清在线观看免费 | 在线视频欧美日韩 | 特级片免费看 | 国产成人精品日本亚洲专区6 | 国产美女作爱 | www中文字幕| 99精品观看 |