比方說,我有System.inJava線程System.in我如何「等控制檯命令」
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
result = br.readLine();
while (!result.isEmpty()) {
if (result.equalsIgnoreCase("exit")) {
userStr="exit";
System.exit(0);
} else if (result.equalsIgnoreCase("list")) {
userStr="list";
} else if (result.equalsIgnoreCase("kill")) {
userStr="kill";
} else if (result.equalsIgnoreCase("help")) {
userStr="help";
}
和
ServerSocket socketListener = new ServerSocket(port);
while (true) {
Socket client = socketListener.accept();
new ServerThread(client,userStr); //pass userStr to Thread
}
我不明白我如何「等控制檯命令「並將它們傳遞給活動的線程。我需要接受()客戶端,將它們傳遞給線程。例如,如果我在服務器控制檯中輸入命令, 「kill用戶名」(斷開連接用戶)或「列表」(用戶名列表) 我的服務器應該傳遞命令給線程。
p/s我需要管理服務器,通過輸入控制檯命令進行管理。
查看[java.util.concurrent]中的隊列實現(http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary。 html) – McDowell
我還是不明白你的問題。標題沒有告訴我什麼,雖然我明白你想要做什麼,但我仍然不明白你想問什麼。你解決這個問題有什麼問題?顯然你知道線程,所以「等待控制檯命令」不應該是一個問題? – junix
我試圖更新這個問題,如果我犯了一個錯誤,請隨時更新這個問題。對於未來的問題,你應該真的試着在你的問題上付出一些努力。請記住,我們沒有得到報酬來回答你的問題。這完全是自願的,人們在百忙之中抽出時間幫助你。 http://stackoverflow.com/review/ – eandersson