2011-12-14 57 views
1

假設我有一個RMI客戶機 - 服務器應用程序。客戶端連接到服務器,並在某個時候服務器啓動任務。在任務期間,客戶正在做一些工作,但在某些時候,服務器必須中斷這項工作而不讓客戶完成它。客戶端實現爲線程,最簡單的解決方案看起來像調用thread.interrupt(),但這在RMI不起作用。有沒有其他方法或解決方法來解決這個問題?提前致謝。Java RMI:停止在客戶機上運行的線程

+0

我想不出一個可以控制/管理遠程線程的解決方案。最好的辦法是讓客戶端聽'中斷'消息...... – home

回答

0

您可以實現雙向遠程方案,其中當客戶端執行服務器遠程對象的查找並創建本地實例時,它會調用一個方法,通過該方法它將自己的遠程對象傳遞給服務器。然後,當服務器完成其任務時,它可以通過調用從客戶端接收的遠程對象中的方法來通知客戶端。

+0

這似乎可能是最簡單的解決方案,不幸的是它不起作用。我在Client上調用了一個finish()方法,它應該中斷自己,但是它不會發生。 – Egor