实现线程按顺序输出ABC

mac2026-04-20  8

线程按顺序输出ABC

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

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

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(); } } }

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

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(); } }

结果展示

最新回复(0)