#java #multithreading
#Ява #многопоточность
Вопрос:
в основном потоке есть while(true), и он будет контролировать ввод с клавиатуры,а дочерний поток будет контролировать ввод сервера,также есть while(true) в дочернем потоке,поэтому, когда я получаю сообщение с сервера, я хочу, чтобы основной поток подождал, пока я завершу дочерний поток; есть коды
//the main thread class MainThread{ public static void main(String[] arg){ while(true){ new ChlidThread.start(); Scanner s=new Scanner(); String mainChoice=s.next(); //any code; } } } class ChildThread extends Thread{ public static void main(String[] arg){ //this will motitor the server and receive the message from the server while(true){ //any code if(message.type==Message.type.RECEIVE_MESSAGE){ Scanner s=new Scanner(); String childChoice=s.next(); } } } } } above are the codes; and when I receive the message from the server ,I type the choice ,it will be given the mainChoice,but I want to give it to childChoice;and I have add sychronized(lock)//lock is the element of the mainThread; {lock.wait(); } //the childThread code sychronized(lock){ lock.notify(); }
но это не работает;так что кто-нибудь может мне помочь?