你不知道的Java学习笔记22-- 线程阻塞(线程休眠)方法

来源:互联网 发布:淘宝手机助手ipad版 编辑:程序博客网 时间:2024/06/05 04:33

线程阻塞(线程休眠)方法

一、Sleep(long millis)方法

Sleep(long millis):在指定的毫秒内让当前正在执行的线程休眠(暂停执行)。sleep()让当前正在执行的线程休眠,CPU去执行其他线程,等到休眠时间结束后,该线程处于就绪状态。等待CPU的继续执行,是接着上一次的执行,而不是重新执行。

/* * 测试Sleep()方法 */public class TestSleep {    public static void main(String[] args) {        //创建线程对象        MyThread th1=new MyThread();        MyThread th2=new MyThread();        //设置线程名字        th1.setName("线程1");        th2.setName("线程2");        //调用线程start()方法激活线程        th1.start();        th2.start();    }}//定义MyThread类去继承Threadclass MyThread extends Thread{    //重写run()方法    public void run()    {        //利用for()循环进行打印输出        for(int i=0;i<5;i++)        {            //Thread.currentThread().getName()获取线程的名字            System.out.println(Thread.currentThread().getName()+":\t"+i);            //调用Sleep(long millis)方法,实现每个进行打印一次就进入millis毫秒的休眠状态。            try {                //每个进行打印一次就进入2000毫秒的休眠状态。                Thread.sleep(2000);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }}

这里写图片描述

二、yield()方法

yield()让当前正在执行的线程立即停止,CPU执行其他线程,而刚才正在执行的线程会马上处于就绪状态,没有等待的时间,相当于sleep(0)的效果。

/* * 测试Yeild()方法 */public class TestYeild {    public static void main(String[] args) {        //创建线程对象        MyThread th1=new MyThread();        MyThread th2=new MyThread();        //设置线程名字        th1.setName("线程1");        th2.setName("线程2");        //调用线程start()方法激活线程        th1.start();        th2.start();    }}//定义MyThread类去继承Threadclass MyThread extends Thread{    //重写run()方法    public void run()    {        //利用for()循环进行打印输出        for(int i=0;i<5;i++)        {            //Thread.currentThread().getName()获取线程的名字            System.out.println(Thread.currentThread().getName()+":\t"+i);            //调用Sleep(long millis)方法,实现每个进行打印一次就进入millis毫秒的休眠状态。            Thread.yield();        }    }}

这里写图片描述

1 0
原创粉丝点击