所以我寫在斯卡拉迷你超時庫,它看起來非常相似,這裏的代碼:How do I get hold of exceptions thrown in a Scala Future?在Scala中,Futures.awaitAll會在超時時終止線程嗎?
我執行要麼會成功完成,或永遠阻塞的功能,所以我需要確保在超時執行線程被取消。
因此我的問題是:在超時時間內,awaitAll會終止潛在的actor,還是讓它永遠持續運行?
我正在考慮的一種替代方法是使用java Future庫來執行此操作,因爲可以調用顯式的cancel()方法。
你是什麼意思「永遠阻止」–是阻止I/O?也許使用異步I/O。硬中斷Java線程不是推薦的事情。否則,如果該塊仍然是「接收」,那麼爲什麼不使用演員的方法,如在你連接的問題中給出的Viktor Klang的答案?然後你可以發送一封墮胎信息給那個演員。 – 2012-07-25 01:57:33