java写三个线程分别输出a,b,c10次。要求用wait和notify方法实现依次输出..

java写三个线程分别输出a,b,c10次。要求用wait和notify方法实现依次输出...... java写三个线程分别输出a,b,c10次。要求用wait和notify方法实现依次输出... 展开
 我来答
BecanXu
2016-11-24 · TA获得超过114个赞
知道小有建树答主
回答量:75
采纳率:50%
帮助的人:45.8万
展开全部
package file.system.demo.thread;

public class PrintABC {
private int index=0;

public synchronized void print(int n){
try {

while(index!=n){
wait();
}
//index=0打印a
if(index==0)
System.out.print("a");
//index=1打印b
if(index==1)
System.out.print("b");
//index=2打印c
if(index==1)
System.out.print("c");
index = (n+1)%3;
notifyAll();

} catch (InterruptedException e) {
e.printStackTrace();
}
}
}


package file.system.demo.thread;

public class AllThread {
private PrintABC printABC;
public AllThread (PrintABC printABC) {
this.printABC=printABC;
}
class AThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
printABC.print(0);
}
}
}

class BThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
printABC.print(1);
}
}
}
class CThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
printABC.print(2);
}
}
}

static class Test{
public static void main(String[] args) {
AllThread allThread = new AllThread(new PrintABC());
allThread.new AThread().start();
allThread.new BThread().start();
allThread.new CThread().start();
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式