class num
public void setnum(int num)
public num(int num) }
class mythreada extends thread
public void run()
catch (interruptedexception e)
system.out.println(1);
num.setnum(2);
num.notifyall();}}
}}class mythreadb extends thread
public void run()
catch (interruptedexception e)
system.out.println(2);
num.setnum(1);
num.notifyall();}}
}}public class test001
}
**如上所看到的
輸出內容例如以下21
2121
即重複輸出1和2.這裡我們就採用了執行緒的同步模式,乙個執行緒輸出1,另外乙個執行緒輸出2,而且可以進行同步,同步則是利用物件num的wait和notifyall來進行的。
通過乙個例子,描述執行緒wait和notify方法
場景 乙個類中,乙個是往容器中新增元素的方法,乙個是返回容器大小的方法,現在又兩個執行緒,a執行緒呼叫新增方法,b執行緒呼叫返回容器大小方法,當大小為5的時候,b執行緒提示並結束。可直接複製,執行 public class usewaitandnotify public intsize public...
java中sleep 和wait 的區別
sleep方法是thread類中定義的方法,而wait方法是object類中定義的方法。每個物件都有乙個鎖來控制同步訪問,synchronized關鍵字可以和物件的鎖互動,來實現同步方法或同步塊。執行sleep 方法的執行緒會主動讓出cpu 然後cpu就可以去執行其他任務 在sleep指定時間後cp...
JAVA中JOIN和WAIT的關係
首先上 1 執行結果1 執行結果2 thread 0 running thread 0 end main end 可以知道,join方法,可以使得某個執行緒阻塞執行,讓出cpu給其他執行緒,此示例就是,main執行緒被阻塞執行讓出cpu給timerthread執行緒,知道timerthread執行緒...