加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Java 多线程之--- Thread.join详解

发布时间:2021-11-20 13:26:20 所属栏目:PHP教程 来源:互联网
导读:这次说的是Thread的join方法,以前总是使用他的run和sleep方法,哪两个都是比较清楚的,对于这个join方法,他的主要功能就是,当你在一个方法里面调用其他的线程的时候,如果使用了类似thread1.join(),这样的话,这个调用的线程就开始一直等待thread1这个线

这次说的是Thread的join方法,以前总是使用他的run和sleep方法,哪两个都是比较清楚的,对于这个join方法,他的主要功能就是,当你在一个方法里面调用其他的线程的时候,如果使用了类似thread1.join(),这样的话,这个调用的线程就开始一直等待thread1这个线程返回,什么时候thread1这个线程的run方法运行完了返回了,这个当前的主线程才会继续向下运行。当然,join还有两个参数方法,这个参数的意思就是,首先等待这个线程调用完,比如thread1.sleep(1000),这样主线程就会等待thread1运行,直到thread1运行完返回或者当前主线程等待超过1秒钟就会不理这个thread1线程继续向下执行。
 
代码如下
 
package com.bird.concursey;
 
import Java.util.Date;
import java.util.concurrent.TimeUnit;
 
/**
 * 数据源
 * @author bird
 * 2014年9月15日 下午10:10:04
 */
public class DataSourceLoader implements Runnable{
 
 public void run() {
  System.out.println("begining the data source loding" + new Date());
  try {
   TimeUnit.SECONDS.sleep(4);
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
  System.out.println("begining the data source loding" + new Date());
 }
 
 public static void main(String[] args) {
  DataSourceLoader dsLoader = new DataSourceLoader();
  Thread thread1 = new Thread(dsLoader, "dsloader");
  NetworkConnectionsLoader ncLoader = new NetworkConnectionsLoader();
  Thread thread2 = new Thread(ncLoader, "ncloader");
  thread1.start();
  thread2.start();
  try {
   thread1.join();
  // thread2.join(1000);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  System.out.println(new Date());
 }
}
 
 
 
package com.bird.concursey;
 
import java.util.Date;
import java.util.concurrent.TimeUnit;
 
public class NetworkConnectionsLoader implements Runnable {
 
 public void run() {
  System.out.println("begining the data source loding" + new Date());
  try {
   TimeUnit.SECONDS.sleep(6);
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
  System.out.println("begining the data source loding" + new Date());
 }
 
}
 
 
 
begining the data source lodingMon Sep 15 22:27:41 CST 2014
begining the data source lodingMon Sep 15 22:27:41 CST 2014
begining the data source lodingMon Sep 15 22:27:45 CST 2014
Mon Sep 15 22:27:46 CST 2014
begining the data source lodingMon Sep 15 22:27:47 CST 2014

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读