使用两个线程分别打印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();
}
}
Java线程交替打印
本文介绍了一个使用Java实现的线程交替打印示例,通过两个线程分别打印数字1~25和字母A~Z,确保按特定顺序交错输出。代码展示了如何利用synchronized关键字和wait方法控制线程的并发执行。
866

被折叠的 条评论
为什么被折叠?



