wait() and notify()
有一段程式:
public class WaitAndNotify extends Thread{
public synchronized void run(){
try{
wait();
}catch(InterruptedException e){
e.printStackTrace(System.err);
}
}
public static void main(String[] args){
WaitAndNotify wan=new WaitAndNotify();
wan.start();
synchronized(wan){ //1
wan.notify(); //1
} //1
}
}
按照我的想法程式應該按下面的順序執行:
1 開始新的執行緒(wan.start())
2 執行緒在run()方法中被阻塞
3 因為是呼叫的wait()阻塞執行緒,所以wan物件上的鎖應當被放棄,從而使//1的程式碼被執行,執行緒被喚醒,程式得以繼續執行
可實際情況是:
wan.start()被呼叫,執行緒被阻塞,沒有繼續向下執行。不知道是什麼原因?
小弟初學, 還請多多關照
public class WaitAndNotify extends Thread{
public synchronized void run(){
try{
wait();
}catch(InterruptedException e){
e.printStackTrace(System.err);
}
}
public static void main(String[] args){
WaitAndNotify wan=new WaitAndNotify();
wan.start();
synchronized(wan){ //1
wan.notify(); //1
} //1
}
}
按照我的想法程式應該按下面的順序執行:
1 開始新的執行緒(wan.start())
2 執行緒在run()方法中被阻塞
3 因為是呼叫的wait()阻塞執行緒,所以wan物件上的鎖應當被放棄,從而使//1的程式碼被執行,執行緒被喚醒,程式得以繼續執行
可實際情況是:
wan.start()被呼叫,執行緒被阻塞,沒有繼續向下執行。不知道是什麼原因?
小弟初學, 還請多多關照
相關文章
- wait()和notify()、notifyAll()AI
- sleep & wait | notify | notifyAllAI
- wait/notify/notifyAll 總結AI
- wait、notify和notifyAll的關係AI
- Java同步機制:synchronized,wait,notifyJavasynchronizedAI
- 深入執行緒的wait()/notify()執行緒AI
- Java 中的 Wait 和 Notify 機制JavaAI
- java多執行緒wait notify joinJava執行緒AI
- 一個理解wait()與notify()的例子AI
- Java-併發-wait()、notify()和notifyAll()JavaAI
- 併發程式設計之Wait和Notify程式設計AI
- 併發-6-wait、notify、Semaphore、CountDownLatch、CyclicBarrierAICountDownLatch
- 執行緒間協作——wait、notify、notifyAll執行緒AI
- 多執行緒中的wait與notify執行緒AI
- Java的wait(), notify()和notifyAll()使用心得JavaAI
- thread的notify和wait怎麼玩?threadAI
- 一個理解wait()與notify()的例子 (轉)AI
- Java常用的三個方法 `wait ` `notify` `notifyAll`JavaAI
- 併發程式設計之 wait notify 方法剖析程式設計AI
- java併發程式設計系列:wait/notify機制Java程式設計AI
- 執行緒篇2:[- sleep、wait、notify、join、yield -]執行緒AI
- java多執行緒 wait() notify()簡單使用Java執行緒AI
- Java併發(二十一)----wait notify介紹JavaAI
- Java多執行緒8:wait()和notify()/notifyAll()Java執行緒AI
- 如何在 Java 中正確使用 wait, notify 和 notifyAllJavaAI
- Java多執行緒的wait()和notify()例子Java執行緒AI
- JVM原始碼分析之Object.wait/notify實現JVM原始碼ObjectAI
- Java 非同步程式設計之:notify 和 wait 用法Java非同步程式設計AI
- Java多執行緒 -- wait() 和 notify() 使用入門Java執行緒AI
- 啃碎併發(八):深入分析wait¬ify原理AI
- Java多執行緒中wait 和 notify 方法理解Java執行緒AI
- Java多執行緒中的wait/notify通訊模式Java執行緒AI模式
- 一個關於wait/notify與鎖關係的探究AI
- 執行緒安全(三個條件)Synchronzied,wait和notify執行緒AI
- JVM原始碼分析之Object.wait/notify(All)完全解讀JVM原始碼ObjectAI
- 條件佇列大法好:wait和notify的基本語義佇列AI
- 執行緒間的同步與通訊(2)——wait, notify, notifyAll執行緒AI
- Java併發(二十二)----wait notify的正確姿勢JavaAI