10.等待线程死亡join方法



等待线程死亡join方法

 导言

假设有三个线程,分别是线程a,线程b,和线程c他们各自的任务分别是打印数字一、数字2和数字三,

这三个线程同时启动,如何让这三个线程按顺序执行任务,也就是按顺序打印123,

如果想让多个线程按顺序执行,可以使用thread类里面的join方法,它的作用是等待该线程死亡,死亡的意思是run方法执行结束,无论是顺利执行完毕,还是中途被中断,都算是死亡。如果被等待的线程被中断,将会引发线程中段异常。

演示 


下面来演示该方法,也是该方法需要用到三个任务,第一个任务是打印数字一,

第二个任务是打印数字二。不过我们需要在第二个任务里面执行第一个任务的线程的join方法,等待第一个任务的线程死亡,然后再执行打印数字二。所以我们需要在任务里面定一个thread属性。记录第一个任务的线程。接着我们定义设置线程的方法,再接着线程的join方法,等待该线程的死亡。

join方法有异常抛出,使用try---catch将其捕获。

第三个任务和第二个任务,除了类名和输出的内容不一样以外,其余的都一样,至此三个任务都已全部编写完成。 


下面我们来创建这三个任务,然后创建三个线程,接着将三个任务分别传递给三个线程。在线程启动之前,我们需要将第二个任务等待的线程设置好,也就是将第一个任务的线程传递给第二个任务。同理将第二个任务的线程传递给第三个任务,最后我们来启动这三个线程。从运行结果来看,数字
123是按照顺序打印的。

总结

最后我们来总结一下本节的内容,本节介绍了线程thread类里面的join方法,它的作用是等待该线程死亡,在实际开发中偶尔也会用到它。 


  

附录:

笔记完整文本:

假设有三个线程,分别是线程a线程b和线程c他们各自的任务分别是打印数字一、数字2和数字三,这三个线程同时启动,如何让这三个线程按顺序执行任务,也就是按顺序打印123,如果想让多个线程按顺序执行,可以使用thread那里面的救引方法,它的作用是等待该线程死亡,死亡的意思是run法宝执行结束,无论是顺利执行完毕,还是中途被中断,都算是死亡。如果被等待的线程被中断,将会引发线程中段异常。 下面来演示该方法,也是该方法需要用到三个任务,第一个任务是打印数字一,第二个任务是打印数字二。不过我们需要在第二个任务里面执行第一个任务的现成的教学方法,等待第一个任务的现场死亡,然后再执行打印数字二。所以我们需要在任务里面定一个three类型的属性记录第一个任务的线程。接着我们定一个设置线程的方法,再接着现成的救援方法,等待该县的死亡。救援方法有异常,抛出使用踹开其补货。第三个任务和第二个任务,除了类名和输出的内容不一样以外,其余的都一样,至此三个任务都已全部编写完成。 下面我们来创建这三个任务,然后创建三个线程,接着将三个任务分别传递给三个线程。在线程启动之前,我们需要将第二个任务等待的线程设置好,也就是将第一个任务的线程传递给第二个任务。同理将第二个任务的线程传递给第三个任务,最后我们来启动这三个线程。从运行结果来看,数字123是按照顺序打印的。最后我们来总结一下本节的内容,本节介绍了所谓的令里面的救援方法,它的作用是等待该线程死亡,在实际开发中偶尔也会用到它。