0
我正嘗試在當前正在運行的線程的運行方法中創建新線程。但新線程沒有開始,它阻止了當前正在運行的線程的執行。在JAVA中創建新線程時阻止運行方法
運行當前正在運行的線程的方法。
public void run() {
while(true){
try{
Message message = (Message)objIn.readObject();
System.out.println("Received msg:"+message);
if(message.type.equals("connection")){
if(message.content.equals("true")){
System.out.println("connection successful");
InetAddress senderIp = message.senderIp;
InetAddress receiverIp = message.receiverIp;
System.err.println(senderIp+"------"+receiverIp);
if(senderIp.getHostAddress().equals(receiverIp.getHostAddress())){
//first member of ring topology
System.err.println("first member");
}else{
System.err.println("not the first member");
ClientSideTempClient clientTemp = new ClientSideTempClient(receiverIp);
Thread obj1 = new Thread(clientTemp);
obj1.start();
System.out.println("after starting local client tread...");
}
}else{
System.out.println("something went wrong");
}
}
}catch(Exception e){
System.out.println("Exception:"+e);
}
}
}
類新的線程: ClientSideTempClient.java
public class ClientSideTempClient implements Runnable{
public Socket socket;
public ObjectInputStream objIn;
public ObjectOutputStream objOut;
public ClientSideTempClient(InetAddress serverIp){
try{
System.err.println("trying to connect"+serverIp.getHostAddress());
String ipAddress = serverIp.getHostAddress();
socket = new Socket(ipAddress, 9010);
objOut = new ObjectOutputStream(socket.getOutputStream());
objOut.flush();
objIn = new ObjectInputStream(socket.getInputStream());
}catch(Exception e){
System.err.println("Exception in ClientSideTempClient"+e);
}
}
public void sendMessageToLocalServer(Message msg){
try {
objOut.writeObject(msg);
objOut.flush();
System.out.println("Outgoing : "+msg.toString());
}catch(Exception e){
System.out.println("Exception in chatroom_client:"+e);
}
}
@Override
public void run() {
While(true){
System.out.println("Execution started here");
}
}
}
我搜索了這個的相關答案對谷歌的數字,但我沒有得到的IT解決方案。任何人都可以指導我解決這個問題?
這是否編譯:'while(true){'?這是每一個打印:'System.out.println(「執行從這裏開始」);'? – 2014-11-24 01:10:31
你確定它不是阻塞的構造函數嗎? – 2014-11-24 01:11:31
@HovercraftFullOfEels:它不打印任何東西。 – Renaissance 2014-11-24 01:17:21