執行緒同步(二)

2021-08-28 20:03:23 字數 708 閱讀 6000

1 countdownlatch

countdown倒計時,latch鎖、門閂

countdownlatch countdownlatch = new countdownlatch(2);

thread threada = new thread(new runnable()

});thread threadb = new thread(new runnable()

});thread threadc = new thread(new runnable()

});threada.start();

threadb.start();

threadc.start();

作用就是執行緒a必須等到執行緒b、c執行完成後,才能執行(b、c)沒有執行順序的要求,栗子:由a來給b、c執行緒開發令槍

2 cyclicbarrier

cyclicbarrier cyclicbarrier = new cyclicbarrier(2);

thread threada = new thread(new runnable()

});thread threadb = new thread(new runnable()

});threada.start();

threadb.start();

栗子:小明、小紅等著一路回家

linux 執行緒同步(二)

訊號量 訊號量是相互排斥鎖的公升級版把相互排斥鎖中1變成了n。舉個簡單的樣例 如果如今有10個人,有一部手機。這10個人都競爭來使用手機打 這就是相互排斥鎖。對於訊號量,如今可能是有4部手機,這10個人都競爭來使用手機打 相比相互排斥鎖訊號量由1變成了4。訊號量相也就是作業系統中pv操作,它廣泛應用...

執行緒程序同步(二)

檔案鎖 哲學家用餐模型分析 程序間也可以使用互斥鎖,來達到同步的目的。但應在pthread mutex init初始化之前,修改其屬性為程序間共享。mutex的屬性修改函式主要有以下幾個。主要應用函式 pthread mutexattr t mattr 型別 用於定義mutex鎖的 屬性 pthre...

多執行緒同步技術 二

5.semaphore semaphore是同一時間允許幾個程序同時獲取共享資源的,如下例 新建立了6個執行緒,設定最多只有2個執行緒,每次只有2個執行緒可以獲取資源,等到這個兩個執行緒執行完畢,釋放了執行緒鎖,然後餘下的執行緒可以繼續獲取鎖執行 6.autoresetevent manualres...