使用两个线程分别打印1 ~ 25,A ~ Z按12A34B56C78D的顺序输出
public class ThreadPrint {
public static void main(String[] args) {
final Object lock = new Object();
new Thread(new Runnable() {
public void run() {
synchronized (lock) {
for (int i = 1; i < 26; i++) {
if (i % 2 != 0) {
System.out.print(i);
} else {
System.out.print(i);
try {
lock.wait(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}).start();
// 睡10ms保证能进入线程A
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
new Thread(new Runnable() {
public void run() {
synchronized (lock) {
for (int i = 0; i < 26; i++) {
//大写A~Z
System.out.print((char) (65 + i));
//小写a~z
// System.out.print((char) (97 + i));
try {
lock.wait(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
}