class Solution {
public int count = 0;
public final Object obj = new Object();
public class Runner implements Runnable{
@Override
public void run() {
while(count<100){
synchronized(obj){
System.out.println(Thread.currentThread().getName()+" : "+count);
count++;
obj.notifyAll();
try{
if(count<100) obj.wait();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
public void test(){
new Thread(new Runner(),"A").start();
new Thread(new Runner(),"B").start();
new Thread(new Runner(),"C").start();
}
public static void main(String[] args) {
Solution solution = new Solution();
solution.test();
}
}
结果显示:
A : 0
C : 1
B : 2
C : 3
A : 4
B : 5
C : 6
A : 7
B : 8
C : 9
A : 10
B : 11
C : 12
A : 13
B : 14
C : 15
A : 16
B : 17
C : 18
A : 19
B : 20
C : 21
A : 22
B : 23
C : 24
A : 25
B : 26
C : 27
A : 28
B : 29
C : 30
A : 31
B : 32
C : 33
A : 34
B : 35
C : 36
A : 37
B : 38
C : 39
A : 40
B : 41
C : 42
A : 43
B : 44
C : 45
A : 46
B : 47
C : 48
A : 49
B : 50
C : 51
A : 52
B : 53
C : 54
A : 55
B : 56
C : 57
A : 58
B : 59
C : 60
A : 61
B : 62
C : 63
A : 64
B : 65
C : 66
A : 67
B : 68
C : 69
A : 70
B : 71
C : 72
A : 73
B : 74
C : 75
A : 76
B : 77
C : 78
A : 79
B : 80
C : 81
A : 82
B : 83
C : 84
A : 85
B : 86
C : 87
A : 88
B : 89
C : 90
A : 91
B : 92
C : 93
A : 94
B : 95
C : 96
A : 97
B : 98
C : 99