编写一个程序,开启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(); } } } } } }