1.2.3休眠(Sleeping)

来源:互联网 发布:知妈妈乐疯狂 编辑:程序博客网 时间:2024/05/18 00:43

Thread类声明一对static方法让线程处于休眠状态:

        (1)void sleep(long millis):休眠millis毫秒。线程休眠的实际毫秒数取决于系统定时器和调度程序的精度和准确性。当millis不合法,将会抛出IllegaArgumentException异常;当任何线程的当前线程被打断,将会抛出IllegaArgumentException异常。当这个异常抛出之后,就可以说明当前线程是处于打断状态。

        (2)void sleep(long millis, intnanos):休眠从millis毫秒到nanos纳秒。线程休眠的实际毫秒数取决于系统定时器和调度程序的精度和准确性。当millis不合法,nanos不合法,或nanos大于999999,将会抛出IllegaArgumentException异常;当任何线程的当前线程被打断,将会抛出IllegaArgumentException异常。当这个异常抛出之后,就可以说明当前线程是处于打断状态。

     sleep()方法理适合用于繁忙的循环,因为它们不会消耗处理器周期。下面是给出的例子。Listing 1-4.

Listing1-4 证明线程休眠。

package com.owen.thread.chapter1;public class ThreadSleeping{public static void main(String[] args){Runnable r = new Runnable(){@Overridepublic void run(){String name = Thread.currentThread().getName();int count = 0;while (!Thread.interrupted())System.out.println(name + ": " + count++);}};Thread thdA = new Thread(r);Thread thdB = new Thread(r);thdA.start();thdB.start();try{Thread.sleep(2000);} catch (InterruptedException ie){}thdA.interrupt();thdB.interrupt();}}
源码下载:git@github.com:owenwilliam/Thread.git


阅读全文
0 0
原创粉丝点击