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