5.多线程学习--等待线程的终结

来源:互联网 发布:c语言汉化版 编辑:程序博客网 时间:2024/06/14 08:29
package com.jackson.deng.concurrent.chapter1.five;import java.util.Date;import java.util.concurrent.TimeUnit;/** * 线程.join()表示等待该线程执行完成(TERMINATED状态) *  * @author jackson * */public class FinishThread {public class DataSourcesLoader implements Runnable {@Overridepublic void run() {System.out.printf("Begining data sources loading: %s\n", new Date());try {TimeUnit.SECONDS.sleep(4);} catch (InterruptedException e) {e.printStackTrace();}System.out.printf("Data sources loading has finished: %s\n", new Date());}}public class NetworkConnectionsLoader implements Runnable {@Overridepublic void run() {System.out.printf("Begining network connections loading: %s\n", new Date());try {TimeUnit.SECONDS.sleep(6);} catch (InterruptedException e) {e.printStackTrace();}System.out.printf("Network connections loading has finished: %s\n", new Date());}}public static void main(String[] args) {FinishThread ft = new FinishThread();Thread t1 = new Thread(ft.new DataSourcesLoader());Thread t2 = new Thread(ft.new NetworkConnectionsLoader());t1.start();t2.start();try {System.out.println(t1.getState());System.out.println(t2.getState());t1.join();t2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(t1.getState());System.out.println(t2.getState());System.out.println("在线程1和2执行完成之后在执行这个  ");}}

运行结果:

RUNNABLE
RUNNABLE
Begining data sources loading: Fri Oct 31 11:39:44 CST 2014
Begining network connections loading: Fri Oct 31 11:39:44 CST 2014
Data sources loading has finished: Fri Oct 31 11:39:48 CST 2014
Network connections loading has finished: Fri Oct 31 11:39:50 CST 2014
TERMINATED
TERMINATED
在线程1和2执行完成之后在执行这个  

0 0