我有一个功课,我必须实现一个生成器线程(Writer),它发送一个从0到N Avg线程(读者)的数字序列,使0到达Avg_0,1到Avg_1,N再到Avg_0等等。一旦Avg线程接收到M个数字,他们就会计算出它们的平均值并将其发送到输出中。
Here你可以看到我的代码,我将Monitor类用作数据库,线程可以在其中写入并安全地读取
现在,一切运行顺利,但你可以看到我使用了两个Thread.sleep()来确保读者/作者按此顺序工作W / R / W / R / W ......否则我总是在Avgs能够读取之前看到生成器多次写入数据库,或者在生成器发送新数字之前多次打印Avgs。
我要问的是:如何使用synchronized方法实现锁定,以便我不必使用sleep方法?