java 当中如何结束一个线程,不用stop()

解决方案 »

  1.   

    是这样的,我的线程是通过手机和网络进行socket连接,我想有个取消连接的按钮,但不知道如何处理
      

  2.   

    volatile boolean cancle = false;
    run(){
       while(true){
          if (cancle) return;
          //do somthing
    }
    }
    setCancle(){
       cancle = true;
    }
      

  3.   

    boolean stop;
    run(){
       while(!stop){
      //TODO do somthing
    }
    }
    setStop(){
       this.stop= true;
    }
      

  4.   

    传过来你的值
    run(){
    if(值){
    .......
    }else{
    break;
    }
    }
    不要用stop,1.5都不支持用stop了,因为stop是停不下来的
      

  5.   

    当退出run()的时候就结束了。有n种方法可以退出run()
      

  6.   

    stop()函数不会释放同步锁,会造成同步问题,现在sun推荐使用interrupt()函数
      

  7.   

    把线程的对象置为NULL就可以了,不要用STOP()。会造成死锁问题,详见
    http://java.sun.com/j2se/1.3/docs/guide/misc/threadPrimitiveDeprecation.htmlboolean stop;
    run(){
       while(!stop){
      //TODO do somthing
    }
    }
    setStop(){
       this.stop= true;
    }
    可以