您的位置:首页 > 编程语言 > Java开发

java 多线程控制线程执行顺序

2016-08-09 15:15 489 查看
之前遇到过这个问题,直接上代码记录下:

public class RunableTest implements Runnable {

volatile int target="A".codePointAt(0);
static int minOrder="A".codePointAt(0);
static int maxOrder="C".codePointAt(0);

@Override
public void run() {
synchronized (this){
int order=Thread.currentThread().getName().codePointAt(0);
for (int i=0;i<10;i++){
while (target!=order){
try{
wait();
}catch (Exception ex){

}
}
System.out.println(Thread.currentThread().getName());
target=order+1;
if(target>maxOrder){
target=minOrder;
}
notifyAll();
}

}

}
}
public class TestMain {

public static void main(String[] args){

Runnable runnable=new RunableTest();

Thread threadA=new Thread(runnable,"A");
Thread threadB=new Thread(runnable,"B");
Thread threadC=new Thread(runnable,"C");

threadA.start();
threadB.start();
threadC.start();

}
}


执行结果
A

B

C

A

B

C

A

B

C

A

B

C

A

B

C

A

B

C

A

B

C

A

B

C

A

B

C

A

B

C
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: