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...