您的位置:首页 > 其它

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

2019-07-20 19:13 651 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Ruyi_squad/article/details/96619785

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

package com.ry.test;

public class Test02 {
//ABC  ABC    ABC    ABC    ABC    ABC    ABC    ABC    ABC    ABC
public static void main(String[] args) {
Thread t1 = new Thread(new runnable2(1, "A"));
Thread t2 = new Thread(new runnable2(2, "B"));
Thread t3 = new Thread(new runnable2(0, "C"));
t1.start();
t2.start();
t3.start();
}
}

class runnable2 implements Runnable {
private int sign;//标记
private String csign;
static private int count = 1;//记录次数

public runnable2(int sign, String csign) {
this.sign = sign;
this.csign = csign;
}

@Override
public void run() {
while (count <= 30) {
synchronized (runnable2.class) {
if (count % 3 == sign) {
if (count % 3 == 1) {
System.out.print("\t" + (count / 3+1));
}
System.out.print(csign);
count++;
runnable2.class.notifyAll();
} else {
try {
runnable2.class.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐