我已经开发了一个使用线程来解决读者-作家问题的解决方案。
我有一个监视器类和一个 Reader 和一个 Writer 类。Reader 和 writer 类扩展线程。
现在我正在测试这样的代码:
public static void main(String[] args) {
ReadersWriters controller = new ReadersWriters();
Reader r0=new Reader(controller);
Reader r1=new Reader(controller);
Reader r2=new Reader(controller);
Reader r3=new Reader(controller);
Writer w0=new Writer(controller);
Writer w1=new Writer(controller);
Writer w2=new Writer(controller);
Writer w3=new Writer(controller);
r0.run();
w0.run();
r2.run();
r3.run();
r1.run();
r3.run();
r2.run();
w2.run();
r1.run();
w1.run();
w3.run();
}
我得到的输出是这样的:
Reader number 0 arrives
Reader number 0 starts to read
Reader number 0 finishes reading
Writer number 0 arrives
Writer number 0 starts to write
Writer number 0 finishes writing
Reader number 2 arrives
Reader number 2 starts to read
Reader number 2 finishes reading
...等等。这里的问题是我无法测试并发性。因为看起来我的主程序正在一个接一个地调用 Reader 或 writer,这不是我想要实现的那种测试。
任何人都可以帮助我。请随时询问您可能需要的任何澄清。