我有两个主题,一个是接受订单,另一个是分发订单。
我的第一个线程必须能够逐个从文件中逐个获取订单并将其显示在JTextArea-1中,而这种情况发生时其他线程应该能够从JTextArea-1一次删除一个订单并将其粘贴到另一个JTextArea-2。
我创建了2个线程并使用了MVC模式(有2个视图和1个模型)。线程同时在JTEXTAREA中显示值,这是不可接受的。我该如何解决这个问题?
从JTextArea-1删除和粘贴到JTextArea-2之间我应该有至少5秒的延迟。请帮助。
答案 0 :(得分:1)
这不是处理问题的合适方法,它可能首先不需要线程。
但是如果你坚持使用线程,你想要的是阻塞一个线程的信号量,直到另一个线程的条件存在。此处也可以使用“FIFO阻塞队列”。
将暂停和计时与并发一起使用是无效的,因为它是一个非确定性系统,只会导致更微妙的故障情况。
答案 1 :(得分:0)
您只需添加一个记录文本的synchronized
调用,这样一次只有一个线程可以执行该操作。