!!!!!线程join方法的timeout的理解!!!
但是具体是什么超时?是threadA开始运行的时候就开始计时呢?
我做了一个例子
class Sleeper extends Thread{
private int duration;
public Sleeper(String name,int sleepTime){
super(name);
duration = sleepTime;
start();
}
public void run(){
try{
sleep(duration);
}catch(InterruptedException e){
}
}
}
class Joiner extends Thread{
private Sleeper sleeper;
public Joiner(String name,Sleeper sleeper){
super(name);
this.sleeper = sleeper;
start();
}
public void run(){
try{
sleeper.join(5);
}catch(InterruptedException e){
System.out.println("time out!!");
}
System.out.println(getName()+" join completed");
}
}
public class Joining{
public static void main(String[] args){
Sleeper sleepy = new Sleeper("Sleepy",1500),
grumpy = new Sleeper("Grumpy",1500);
Joiner dopey = new Joiner("Dopey",sleepy),
doc = new Joiner("Doc",grumpy);
}
}
这里的join(5),我本来的意思让joiner等待5毫秒就超时,但是效果不是这样。它一直没有超时。。
相关推荐
python线程join方法原理解析
这篇文章主要介绍了python线程join方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 几个事实 1 python 默认参数创建线程后,不管主线程是否执行完毕,都会等待子线程执行完毕才一起退出,有无join结果一样 2 如果创建线程,并且设置了daemon为true,即thread.setDaemon(True), 则主线程执行完毕后自动退出,不会等待子线程的执行结果。而且随着主线程退出,子线程也消亡。 3 join方法的作用是阻塞,等待子线程结束,join方法有一个参数是timeout,即如果主线程等待timeout,子线程还
Python线程中对join方法的运用的教程
主要介绍了Python线程中对join方法的运用,join方法是阻塞线程的基本方法,需要的朋友可以参考下
Python THREADING模块中的JOIN()方法深入理解
看了oschina上的两个代码,受益匪浅。其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束。这将阻塞正在调用的线程,直到被调用join()方法的线程结束。(好难翻译,应该是这个意思) 哈哈,这个易懂。 join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,那么在调用这个线程时可以使用被调用线程的join方法。 复制代码 代码如下: #-*- encoding: gb2312 -*- import string, threading, time def thread_main(a):
java基本教程之join方法详解 java多线程教程
本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧
Java中Thread.join()的使用方法
主要介绍了Java中Thread.join()的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


Java SE
