码迷,mamicode.com
首页 > 编程语言 > 详细

线程(三)

时间:2016-10-15 01:57:46      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

一、wait和sleep区别?

1.wait可以指定也可以不指定。sleep必须指定时间。

2.在同步中时,对cpu的执行权和锁的处理不同。它们都能将线程处于冻结状态。

   wait:释放执行权,释放锁。

   sleep:释放执行权,不释放锁。

 

二、线程的结束

1.调用该线程的stop()方法结束线程。容易导致不可预知的错误不推荐。

2.run()方法执行结束,线程正常结束,常用标志位来结束线程。

例:用标志位来结束线程

技术分享
package com.test2;
class StopThread1 implements Runnable
{
   private boolean flag=true;
    public  void  run()
    {
        while(flag)
        {          
                System.out.println(Thread.currentThread().getName()+"....");
         }  
    }   
                       
      public void setFlag()            
      {
        flag=false;
    }

}

public class Demo2 {
    public static  void main(String[] args)
    {
        StopThread1 st=new StopThread1();

        Thread t1=new Thread (st);

        t1.start();      
        int num=1;
        for(;;)
        {
            if(++num==10)
            {
                st.setFlag();                     
                break;
            }
            System.out.println("main"+num);
        }
        System.out.println("over");
    }
}
View Code

3.使用interrupt来中断线程。
* Interrupt //可以将线程从冻结状态强制恢复到运行状态中来,让cpu具备执行资格
* 但是强制动作会发生中断异常,记得要处理

 

线程(三)

标签:

原文地址:http://www.cnblogs.com/xiangkejin/p/5962482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!