/**
* 一个逻辑写输出数字,并且每两个都要wait,等待字母的输出
* 一个逻辑写输出字母,并且每次先调用sleep休眠等待数字的输出,然后一次打印一个并notify唤醒数字线程
* @param args
*/
public static void main(String[] args) {
Object obj = new Object();
//输出数字线程
new Thread() {
@Override
public void run() {
synchronized (obj) {
for (int i = 1; i <= 52; i++) {
if (i % 2 == 0) {
System.out.print(i);
try {
obj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
System.out.print(i);
}
}
}
}
}.start();
//输出字母线程
new Thread() {
@Override
public void run() {
int i = 65;
while (i < 91) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (obj) {
System.out.println((char) i++);
obj.notify();
}
}
}
}.start();
}
两个线程,一个输出1-52,另一个输出A-Z,输出格式12A 34B...5152Z
最新推荐文章于 2023-01-13 18:08:55 发布