目前我正在開發Java客戶端/服務器聊天應用程序,並且遇到了一個問題,我會盡可能地解釋清楚。如何從某個Java線程調用方法
我的服務器部分保持創建線程(new ServerThread
)對誰聯機每個用戶:
while (isRunning) {
Socket socket = serverSocket.accept();
DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
outputStreams.put(socket, dout);
System.out.println (outputStreams.values());
new ServerThread(this, socket);
window.newConnectionInfo(socket);// informace
}
我有一個ServerThread類getter方法,我想從某些ServerThread調用基於套接字的實例。但ServerThread類沒有分配給任何變量,所以我不知道如何從它調用方法。任何解決方案?很容易,你需要找到並找到你想強制的方法調用一個方法,你會保持你創建的每個線程,我建議你用於保持客戶端的地圖將在< ServerThread,DataOutputStream>
如果您需要在所有服務器線程上調用它,我建議您構建它們的列表並在需要時迭代它。如果您需要在特定情況下在特定線程上調用它,則需要有關您的方案的更多信息。 – Medo42 2013-05-04 21:24:12
你的問題不清楚。你的'ServerThread'有一個'run()'方法,在這個方法中執行流程。如果你想從線程調用「from」,你可以從那裏調用一個方法。 – 2013-05-04 21:24:29
爲什麼在創建它之後不存儲對每個ServerThread的引用。將其插入到以套接字爲關鍵字的靜態哈希映射中。 – 2013-05-04 21:29:09