Java多執行緒的wait()和notify()例子
示例程式碼2:
package com.pinfo.test;
public class ThreadTest {
/**
* @param args
*/
public static void main(String[] args) {
MyThread myThread = new MyThread();
//使用Runnable實現類建立執行緒
Thread t1 = new Thread(myThread);
//啟動執行緒
t1.start();
try {
//確保執行緒t1先執行
Thread.sleep(2000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
int i = 0;
//主執行緒使用myThread物件作為監視器
synchronized(myThread){
while(++i<=10){
try {
Thread.sleep(500);
System.out.println("The main thread.-->"+i);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//呼叫監視器的notify()方法喚醒t1執行緒
myThread.notify();
}
}
}
class MyThread implements Runnable{
public void run(){
int i = 0;
//使用物件本身this作為監視器(與主執行緒的監視器為同一個物件)
synchronized(this){
while(i++<20){
try {
Thread.sleep(500);
System.out.println("The sub thread.-->"+i);
if(i==10){
//釋放監視器鎖,阻塞等待...
this.wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
相關文章
- Java多執行緒8:wait()和notify()/notifyAll()Java執行緒AI
- java多執行緒wait notify joinJava執行緒AI
- Java多執行緒 -- wait() 和 notify() 使用入門Java執行緒AI
- Java多執行緒中wait 和 notify 方法理解Java執行緒AI
- java多執行緒 wait() notify()簡單使用Java執行緒AI
- 多執行緒中的wait與notify執行緒AI
- Java多執行緒中的wait/notify通訊模式Java執行緒AI模式
- 【Java】【多執行緒】兩個執行緒間的通訊、wait、notify、notifyAllJava執行緒AI
- Java多執行緒/併發11、執行緒同步通訊:notify、waitJava執行緒AI
- 深入執行緒的wait()/notify()執行緒AI
- 多執行緒(一)、基礎概念及notify()和wait()的使用執行緒AI
- java多執行緒基礎篇(wait、notify、join、sleep、yeild方法)Java執行緒AI
- Java多執行緒學習(四)等待/通知(wait/notify)機制Java執行緒AI
- 執行緒間協作——wait、notify、notifyAll執行緒AI
- 執行緒安全(三個條件)Synchronzied,wait和notify執行緒AI
- Java多執行緒下載的例子。Java執行緒
- 執行緒篇2:[- sleep、wait、notify、join、yield -]執行緒AI
- 執行緒和執行緒池的理解與java簡單例子執行緒Java單例
- 執行緒間的同步與通訊(2)——wait, notify, notifyAll執行緒AI
- 執行緒的【生命週期】和【執行緒的同步】(多視窗售票例子)執行緒
- Java 併發程式設計:執行緒間的協作(wait/notify/sleep/yield/join)Java程式設計執行緒AI
- 一個理解wait()與notify()的例子AI
- Java多執行緒——執行緒Java執行緒
- Java 中的 Wait 和 Notify 機制JavaAI
- java中關於執行緒間協作所用關鍵字synchronized,wait,notify的用法Java執行緒synchronizedAI
- 一個理解wait()與notify()的例子 (轉)AI
- wait和notify在鎖競爭中的執行順序AI
- 多執行緒和多執行緒同步執行緒
- 以生活例子說明單執行緒與多執行緒執行緒
- Java多執行緒-執行緒中止Java執行緒
- Java多執行緒——執行緒池Java執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- 【Java多執行緒】執行緒安全的集合Java執行緒
- muduo網路庫學習之EventLoop(二):程式(執行緒)wait/notify 和 EventLoop::runInLoopOOP執行緒AI
- java基礎知識回顧之java Thread類學習(七)--java多執行緒通訊等待喚醒機制(wait和notify,notifyAll)...Javathread執行緒AI
- Java的wait(), notify()和notifyAll()使用心得JavaAI
- 【Java多執行緒】輕鬆搞定Java多執行緒(二)Java執行緒
- Java 併發和多執行緒(一) Java併發性和多執行緒介紹[轉]Java執行緒