使用reentrantlock類的lock和unlock方法進行同步通訊
使用reentrantlock類的newcondition方法可以獲取condition物件,需要等待的時候使用conditionde await方法,喚醒的時候用signal方法,不同的執行緒使用不同的condition,這樣就能區分喚醒的時候找那個執行緒了
public static void main(string args)catch(interruptedexception e)
trycatch(interruptedexception e)}};
}.start();
new thread()catch(interruptedexception e)
trycatch(interruptedexception e)}};
}.start();
}class mytask()
system.out.println(「1.銀行信用卡自動還款業務…」);
flag=2;
//指定喚醒執行緒2
c2.signal();
r1.unlock();//解鎖
}public synchronized void task2() throws interruptedexception
system.out.println(「2.銀行儲蓄卡自動還款業務…」);
flag=3;
c3.signal();//喚醒執行緒3
r1.unlock();
}public synchronized void task3() throws interruptedexception
system.out.println(「1.銀行簡訊提醒業務…」);
flag=1;
c1.signal;//喚醒執行緒1
r1.unlock();}}
多執行緒 互斥鎖
include include include handle mutex null srwlock g lock 改變乙個變數的時候需要鎖定 int num 6400000 在讀期間,值一直在變化,沒有鎖定。dword winapi reada void p i 使用acquiresrwlocksh...
多執行緒 互斥鎖
package com.yys.thread created by yys on 2017 9 25.兩個執行緒執行 t1如果能拿到02物件則t1執行緒執行完畢 t2如果能拿到o1物件則t2執行緒執行完畢 現在兩個執行緒分別鎖定了對方需要的物件 造成執行緒死鎖 public class testde...
多執行緒程式設計 互斥鎖
多執行緒程式設計 互斥鎖 1 引言 互斥鎖,是一種訊號量,常用來防止兩個程序或執行緒在同一時刻訪問相同的共享資源。可以保證以下三點 1 原子性 把乙個互斥量鎖定為乙個原子操作,這意味著作業系統 或pthread函式庫 保證了如果乙個執行緒鎖定了乙個互斥量,沒有其他執行緒在同一時間可以成功鎖定這個互斥...