0
我有一個啓動過程的主進程,通過啓動工作者角色和主角。讓我在這個例子中如何通知所有工作演員終止在斯卡拉?
class process{
var q :collection.mutable.HashMap[]
var map:collection.mutable.HashMap[]
var itrator = q.grouped(1000)
//start master actor
var mas:Actor=null
mas = new Master(map)
mas.start
//start worker actors
var workActor :Actor = null
for(it<-itrator)
{
workActor = new Worker(map,mas)
workActor.start
}
}
class Worker(map:collection.mutable.HashMap[],master:Actor){
def act(){
//check for map size, break if it reaches n size
//pass the message to master to save the data
//then exit
//else
//start analysis process
//then exit
}
}
方案1說明: 一度非常工作者演員完成,他們通知船長演員,更新在主演員計數。一旦所有的工人演員完成後,MASTER演員將保存MAP。
場景2: 一旦「地圖」的大小達到一定數量,我想工人演員終止,並且主演員應保存數據,然後自行終止。
問題:當前在場景2中達到n大小後,工作者參與者終止。但是,所有工作演員只有在檢查了n尺寸條件後才終止。是否有辦法與所有當前正在工作的演員同時通信,以便在一名工作人員達到n大小後終止?