我有一些工作者和一个任务列表(一个链表),由一个主演员发送给工人。链表的每个元素都有一个布尔标志,用于指定元素是否由工作者使用。如果没有,则worker将标志设置为selected并开始处理该元素。当actor完成该元素时,将检查下一个未选择元素的列表元素。 工作人员将继续工作,直到列表中没有任何元素可供使用。 我的问题是设置标志以显示元素被选中的最佳方法。我正在考虑使用AtomicBoolean来标记它以原子方式检查和设置它。但我不知道如何在scala中使用AtomicBoolean。 请指教
答案 0 :(得分:1)
您可以导入Java的AtomicBoolean并照常使用它:
scala> import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicBoolean
scala> val ab = new AtomicBoolean(false)
ab: java.util.concurrent.atomic.AtomicBoolean = false
我会重新考虑设计 - 演员通常不需要通过除队列/收件箱之外的任何机制进行同步。怎么样: