public class Buffer {
int value;
boolean flag = false;
public synchronized int getValue() {
if(!flag)
{
try{
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(" get_value "+value);
flag = false;
notify();
return value;
}
public synchronized void setValue(int value) {
if(flag)
{
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("set_value "+value);
this.value = value;
flag = true;
notify();
}
}Thread control
最新推荐文章于 2024-03-26 17:05:00 发布
本文介绍了一个简单的同步缓冲区类的设计实现,该类使用了wait()和notify()方法来确保线程安全地设置和获取值。当一个线程调用setValue()方法设置值时,它会等待直到缓冲区为空;同样,当另一个线程尝试通过getValue()获取值时,它也会等待直到缓冲区中有值。
2万+

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



