写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z打印顺序为12A34B56C……5152Z(2个数字 1个字母)。
用线程的创建方式和线程池
public class Test02 {
Object obj
= new Object();
ExecutorService es
= Executors
.newFixedThreadPool(2);
es
.submit(new Runnable() {
@Override
public void run() {
synchronized(obj
){
for (int i
= 1; i
<= 52; i
++) {
System
.out
.print(i
+"\t");
if (i
% 2 == 0){
try {
obj
.notify();
obj
.wait();
} catch (InterruptedException e
)
e
.printStackTrace();
}
}
}
}
}
});
try {
Thread
.sleep(10);
} catch (InterruptedException e
) {
e
.printStackTrace();
}
es
.submit(new Runnable() {
@Override
public void run() {
synchronized (obj
){
for (char i
= 'A'; i
<= 'Z'; i
++) {
System
.out
.print(i
+"\t");
try {
obj
.notify();
if (i
!= 'Z'){
obj
.wait();
}
} catch (InterruptedException e
) {
e
.printStackTrace();
}
}
}
}
});
es
.shutdown();
}
执行结果: 1 2 A 3 4 B 5 6 C 7 8 D 9 10 E 11 12 F 13 14 G 15 16 H 17 18 I 19 20 J 21 22 K 23 24 L 25 26 M 27 28 N 29 30 O 31 32 P 33 34 Q 35 36 R 37 38 S 39 40 T 41 42 U 43 44 V 45 46 W 47 48 X 49 50 Y 51 52 Z
转载请注明原文地址:https://blackberry.8miu.com/read-7081.html