java 多线程顺序打印ABC

public class Main { public static String lock = "A"; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Thread a = new A(); Thread b = new B(); Thread c = new C(); a.start(); b.start(); c.start(); } }


public class A extends Thread { @Override public void run() { // TODO Auto-generated method stub int k = 0; while (k < 10) { synchronized (Main.lock) { if (Main.lock.equals("A")) { System.out.print("A"); k++; Main.lock = "B"; } } } }}


public class B extends Thread { @Override public void run() { // TODO Auto-generated method stub int k = 0; while (k < 10) { synchronized (Main.lock) { if (Main.lock.equals("B")) { System.out.print("B"); k++; Main.lock = "C"; } } } } }


public class C extends Thread{ @Override public void run() { // TODO Auto-generated method stub int k = 0; while (k < 10) { synchronized (Main.lock) { if (Main.lock.equals("C")) { System.out.print("C"); k++; Main.lock = "A"; } } } } }

结果:ABCABCABCABCABCABCABCABCABCABC

    推荐阅读