2
我有一個創建多個線程的類,每個線程在構造函數中獲取一個套接字作爲參數。多線程中的同步對象
我需要同步這些線程,以便在給定的時間只有一個線程訪問套接字流。
這裏是什麼,我需要快速草案:
class MyClass{
Socket socket;
public MyClass() {
socket = new Socket(address, port);
}
void createThread(){
Worker worker = new Worker(socket);
Thread t = new Thread(worker);
t.start();
}
void doStuff(){
InputStream is = socket.getInputStream();
/* ... */
}
}
class Worker implements Runnable{
Socket socket;
public Worker(Socket socket){
this.socket = socket;
}
@Override
public void run() {
InputStream is = socket.getInputStream();
/* ... */
}
}
現在這裏,可能多個線程可以在同一時間,這將是非常糟糕的訪問插座輸入流。
現在我的問題是:將關鍵字爲這種情況下工作?
也許最好是有一個套接字訪問類,可以獨佔訪問套接字,用來存儲所有傳入的數據。工人然後以同步的方式訪問這些數據 – xmoex