我想要实现的是客户端关闭的时候,给服务器发送一条退出消息,然后由run()解析执行后,引用stop()方法,由stop()来关闭该客户端的线程。public void run() {
Object clientMsg = in.readObject();
if (clientMsg instanceof Message) {
switch (((Message) clientMsg).msgType) { 
case LOGOUT: 
stop(); 
break;
........
}public void stop() {
try {
listener.interrupt();
listener = null;
handlers.removeElement(this);
out.close();
socket.close();
} catch (Exception e) {
}
}不做任何判断,然后关闭这个线程,可是似乎还是没有关闭掉?CPU的使用率一直是100%
请问该如何解决呢?又或者是别的原因引起的?

解决方案 »

  1.   

    线程是由JVM来管理的,如果正常执行完,线程回自己死掉。SUN已不推荐使用stop等方法来结束一个线程。
      

  2.   

    正常执行完,线程回自己死掉这样的话,那我的CPU的使用率一直是100%,怎么回事呢?client程序已经关闭了,线程会自己结束掉吗?
      

  3.   

    client程序已经关闭,线程会死掉