两条线程的互斥合作就是指,当一条线程在工作时另一条线程挂起。
问题的提出:
我想做一个动太显示随机个数的Label。
实现:
1)一开始用一条线程搞个随机数循环控制,不过,完成 repaint()速度远远小于控制数据的更新速度,所以实在运行时label得不到显示。
2)于是用两条线程来做,这样是可以的。
另一个问题又来了:怎样实现这两条线程的强烈互斥合作?必需要等到一条控制数据的线程把数据修改完成了,另一条控制刷新的
线程去刷新才有用啊。
一开始用的设计模式是:
thread1{ while(true){ do1(); synchronized(1){ 1.notify(); } synchronized(2){ 2.wait(); } } } |
tread2{ while(true){ do2(); synchronized(2){
2.notify(); } synchronized(1){ 1.wait(); } } } |