public class abc extends Thread{
private Object
prev=null;
private Object self=null;
private String msg=null;
public abc(Object
prev,Object self,String msg){
this.prev=prev;
this.self=self;
this.msg=msg;
}
public void
run(){
int count=0;
while(count<1000){
synchronized(prev){
synchronized(self){
System.out.print(msg);
if(msg.contains("C"))
System.out.println();
count++;
self.notify();
}
if(count==1000)
break;
try{
prev.wait();}
catch(Exception e)
{e.getMessage();}
}
}
}
public
static void main(String[] args){
Object
a=new Object();
Object b=new
Object();
Object c=new
Object();
abc abc1=new
abc(c,a,"A");
abc abc2=new
abc(a,b,"B");
abc abc3=new
abc(b,c,"C");
try{
abc1.start();Thread.sleep(100);}catch(Exception
e){e.getMessage();}
try{
abc2.start();Thread.sleep(100);}catch(Exception
e){e.getMessage();}
abc3.start();
}
}
相关文章
- 12-10109_多线程_另一种同步条件变量+互斥锁【这里可以完成同步,但是注意:线程的执行顺序是同时进行的,所以对其中个别操作添加延时,以让部分步骤充分响应】【条件变量的broadcast、wait】
- 12-10多线程012--线程的sleep、wait、join、yield如何使用
- 12-10多线程顺序的控制(wait,notity,sleep)
- 12-10实践JAVA wait(), notify(),sleep方法--一道多线程的面试题
- 12-10java多线程基础(一)--sleep和wait的区别
- 12-10转 Java多线程中Sleep与Wait的区别
- 12-10多线程时,请求执行不是按顺序的,可添加Critical Section Controller(临界部分控制器),执行顺序是固定的,但执行一段时间后,该逻辑器下的请求不再循环,无解ing
- 12-10java多线程之yield,join,wait,sleep的区别
- 12-10-1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
- 12-10多线程中sleep和wait的区别