第四部分 线程的终止

来源:互联网 发布:怎么查看软件的端口号 编辑:程序博客网 时间:2024/06/05 19:20

对于终止运行中的线程,Thread类原本提供了一个人方法:stop();但方法已经被禁用。就目前而言,我们可以利用线程的休眠和中断机制,在子线程中有意地为调度线程安排中断机会。

下面例子就是利用线程的休眠和中断机制来终止线程。【StopThread】

但对于复杂的场景,可以根据这个模型来设计线程的终止机制。在和终止线程的方法中,join()方法来等待线程结束,join()方法并不能终止某线程。而是提供了一个阻塞当前线程,等待某线程终止的途径。对join()方法简单说明:

 void join(): 一直阻塞当前线程,等待线程结束。在等待过程中,如果遇上中断请求,则抛出InterruptedException异常。

 void join(long timeout) :在timeout指定的毫秒时间内阻塞当前线程,等待线程结束。在等待过程中,如果遇上中断请求,则抛出InterruptedException异常。

 void join(long timeout,int nanos):在timeout指定的毫秒+nanos指定的微妙时间内阻塞线程,等待线程结束。在等待过程中,如果遇上中断请求,则抛出InterruptedException异常。

代码如下:【JoinThread】

用Thread类的yield()方法可以使线程主动让出CPU时间片,会的就绪状态。等到JVM调度器再次选中该线程。【YieldThread】

 

 

原创粉丝点击