我正在開發一個使用rmi的應用程序,它允許客戶端登錄,執行一些任務並註銷。我知道每個客戶端在服務器上調用一個方法時都被認爲是一個線程,但是,所有客戶端的線程都會調用服務器上創建的同一個對象。所以現在,我想要爲每個客戶端登錄成功創建一個新線程(並且只有一個客戶端使用的新對象也被綁定),線程在客戶端註銷時終止。因此,每個客戶端都有自己的服務器對象。RMI-在服務器上創建線程來服務客戶端
非常感謝。
乾杯
我正在開發一個使用rmi的應用程序,它允許客戶端登錄,執行一些任務並註銷。我知道每個客戶端在服務器上調用一個方法時都被認爲是一個線程,但是,所有客戶端的線程都會調用服務器上創建的同一個對象。所以現在,我想要爲每個客戶端登錄成功創建一個新線程(並且只有一個客戶端使用的新對象也被綁定),線程在客戶端註銷時終止。因此,每個客戶端都有自己的服務器對象。RMI-在服務器上創建線程來服務客戶端
非常感謝。
乾杯
聽起來很複雜。
對於每個連接的客戶端,您將獲得一個新線程,並在客戶端斷開連接時終止。你在登錄後計劃線程將做什麼,第一個線程不能?
如果您想爲每個客戶端創建一個對象,則可以使用ThreadLocal爲每個線程(每個客戶端)創建一個對象。
我知道,每個客戶端被視爲 作爲一個線程時,它調用一個方法 服務器
這是不正確的。客戶端和服務器線程之間的關係在RMI中未定義。
無論如何你不需要每個客戶端的線程。每個客戶需要一個遠程對象。這是會話模式的工作:
public interface Login extends Remote
{
Session login(String credentials) throws RemoteException;
}
public interface Session extends Remote
{
// Your API here
}
讓您登錄實現對象返回一個新的Session對象的實現爲每個客戶端。
會話模式是一個非常好的主意。我會試試看。謝謝。 – 2011-01-12 11:45:25