前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >实现线程按顺序输出ABC

实现线程按顺序输出ABC

作者头像
呆呆
修改于 2021-10-08 06:19:18
修改于 2021-10-08 06:19:18
87900
代码可运行
举报
文章被收录于专栏:centosDaicentosDai
运行总次数:0
代码可运行

线程按顺序输出ABC

实现描述:建立三个线程A、B、C,分别按照顺序输出十次ABC

首先建立一个方法,按照条件进行输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class PrintABC{
	private int index=0;

	public synchronized void print(int n) {
		// TODO Auto-generated method stub
		try {
			while(index!=n) {
				wait();
			}
			if(index==0) {
				System.out.print("A");
			}else if(index==1) {
				System.out.print("B");
			}else if(index==2) {
				System.out.print("C");
			}
			index = (n+1)%3;
			notifyAll();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
}

其后在建立三个线程,分别调用输出方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class AllThread {

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

class ThreadB extends Thread{
		@Override
		public void run() {
			for(int i=0;i<10;i++) {
				printABC.print(1);
		}
	}
}
	
class ThreadC extends Thread{
		@Override
		public void run() {
			for(int i=0;i<10;i++) {
				printABC.print(2);
		}
	}
}
	
public static void main(String[] args) {
		AllThread allThread = new AllThread(new PrintABC());
		allThread.new ThreadA().start();
		allThread.new ThreadB().start();
		allThread.new ThreadC().start();
	}
}

结果展示

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线程按顺序输出ABC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档