2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果多個(gè)線程可以訪問(wèn)套接字變量,則需要同步訪問(wèn)該變量。
一種方法是創(chuàng)建一個(gè)包裝器,它基本上將同步方法調(diào)用[1]。
然后將您的套接字包裝在構(gòu)造函數(shù)中:
class RequestHandler implements Runnable {
Socket socket;
protected RequestHandler(Socket socket) {
this.socket = new SynchronizedSocket(socket);
}
public void run() { ..........
[1] - https://gist.github.com/Sammers21/a6635213276e9ea064a5a4f20dd53c11

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
帖子中沒有顯示:您實(shí)際上為每個(gè)線程創(chuàng)建了一個(gè)新的 RequestHandler 和 Socket,因此由于套接字不是靜態(tài)的,所以您沒問(wèn)題。每個(gè)線程處理自己的連接(由 Socket 表示)。
添加回答
舉報(bào)