其中的run方法是执行完毕就ok了吧,就不再执行了?还是一直循环着?比如以下代码
class CommsThread implements Runnable {
public void run() {
Socket s = null;
try {
ss = new ServerSocket(SERVERPORT);
} catch (IOException e) {
e.printStackTrace();
}
while (!Thread.currentThread().isInterrupted()) {
Message m = new Message();
m.what = MSG_ID;
try {
if (s == null)
s = ss.accept();
BufferedReader input = new BufferedReader(
new InputStreamReader(s.getInputStream()));
String st = null;
st = input.readLine();
mClientMsg = st;
myUpdateHandler.sendMessage(m);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
执行完run里面的方法以后,是不是之后就不再执行run方法里面的内容了?

解决方案 »

  1.   

    略懂Java,但没玩过那个接口,你发错区了吧
      

  2.   

    run首先只是一个方法,调用时当然只会运行一次,你所问的问题,只是经常发现在网上书上代码中,run方法里大多都使用了while(true)、for(;;)这样的死循环语句,从而以为run方法本身会一直执行。
      

  3.   

    =====================================
    执行RUN里面的方法就结束了,不会反复执行,但可以让线程反复实例化得到资源反复执行。
    线程一般是让执行并发操作,但要考虑CPU调度处理的资源开销,线程能增加性能。
    但超过CPU处理能力就降低了性能。
      

  4.   

     嗯run方法执行完线程就结束了此时你要是想一直监听的话需加while循环 ServerSocket ss = null;
    try {
    ss = new ServerSocket(9999);
    System.out.println("服务器在9999号端口监听。。");
    while (true) {
    Socket s = ss.accept();

                              ...
                              }
                            ...
    }
      

  5.   

    run就是一个简单的方法,只不过用作为线程启动的话,是并发执行的。
      

  6.   

    run()方法是一次性方法,执行完就结束。但是你写的有条件(死循环),所以他不会退出,等你的!Thread.currentThread().isInterrupted()编程false,肯定就结束!