`
BradyZhu
  • 浏览: 247685 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 多线程之--- Thread.join介绍

 
阅读更多

许久许久没有写过博客了,以前上班总是没有时间,但是总感觉写博客还是很好的一种记录自己技术进程的一种方式

于是在辞职后来到北软,又一次上学了,又一次有时间来写博客了,所以再次开始写博客了,呵呵,再次当学生的感觉

真好!!!!


这次说的是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







分享到:
评论

相关推荐

    Java高级程序设计-多线程(二).pptx

    第3章 多线程(二) Java 高级程序设计 Java高级程序设计-多线程(二)全文共34页,当前为第1页。 回顾 进程一般代表一个应用程序,一个进程中可以包含多个线程。 合理使用多线程能够提高程序的执行效率,处理高并发...

    JAVA多线程编程详解-详细操作例子

    本压缩包,总共包含两个文档,JAVA多线程编程详解-详细操作例子和 Java多线 程编程总结 例如,runnable、thread、stop()、 suspend、yield、setPriority()、getPriority()、synchronized、wait()、join、线程池同步...

    java核心知识点整理.pdf

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    多线程机制

    7、 浅析 Java Thread.join() : java多线程实现主线程等待所有子线程执行完毕 16 8、 线程运行中抛出异常的处理 19 9、 Callable 有返回值的线程 20 10、 Callable结合FutureTask的多线程使用(免打扰模式) 24

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    java基本教程之join方法详解 java多线程教程

    本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧

    多线程实验_1

    C#多线程实验,就AutoResetEvent,ManualResetEvent,Thread.join(),委托多线程回调。

    Java开发技术大全(500个源代码).

    ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的类 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程类 demoPri.java 调用上面这个类...

    python多线程DAY04.txt

    解决了多个进程或者线程对共享资源的争夺 Event e.set e.clear e.wait Lock lock.acquire() lock.release() 4. 什么是线程 threading Thread() t.start() t.join() t.name t.getName t.setName t.daemon...

    Java并发编程实践

    1.2 创建多线程...................................................................................................................7 1.2.1 继承Thread 创建线程...............................................

    使用Java多线程实现下载多个文件.txt

    这段代码实现了一个下载器,可以同时下载多个文件。其中,构造函数MultiThreadDownloader接收一个URL数组和两个整数数组作为参数,分别表示每个URL的起始...最后,通过调用每个线程的join()方法等待所有线程执行完毕。

    java7源码-thread:多线程相关的学习

    Java多线程 [TOC] 线程状态 1.New:尚未启动的线程的线程状态 2.Runnable:可运行线程的线程状态,等待CPU调度 3.Blocked:线程阻塞等待监视器锁定的线程状态 4.Waiting:等待线程的线程状态(wait、join、park) 5....

    Java实验指导书_多线程

    Java实验指导书_多线程 《Java语言程序设计基础教程》 上机实验指导手册 异常处理 【目的】 ①线程的创建和运行 ②Thread类的sleep、join等方法的使用 ③线程同步

    Java並發編程實踐基礎

    1.2 创建多线程...................................................................................................................7 1.2.1 继承Thread 创建线程...............................................

    JAVA多线程技术分享-39页PPT(winding)

    分享的多线程技术不是告诉你什么是线程,线程的状态,而是我们在开发中容易踩的坑,受过的伤害。我不会告诉你什么是爱情,但是我会告诉你爱过。 一 基础: 1,Thread.sleep(0)的作用 2,为什么线程会带来性能问题 3...

    Java多线程详解

    文章目录1、进程与线程2、创建多线程2.1、继承Thread类2.2、实现Runnable接口2.3、使用匿名内部类实现2.4、实现Runnable接口的好处2.5、使用Callable和Future创建线程3、线程的生命周期4、几种特殊线程4.1、join线程...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段33讲、多线程Thread-Per-Message设计模式.mp4 │ 高并发编程第二阶段34讲、多线程Two Phase Termination设计模式-上.mp4 │ 高并发编程第二阶段35讲、多线程Two Phase Termination设计模式-...

    java多线程Thread的实现方法代码详解

    主要介绍了java多线程Thread的实现方法代码详解,涉及start(),run(),stop(),interrupt(),isInterrupted(),join()和join(long millis)等方法的介绍,具有一定借鉴价值,需要的朋友可以了解下。

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第二阶段33讲、多线程Thread-Per-Message设计模式.mp4 │ 高并发编程第二阶段34讲、多线程Two Phase Termination设计模式-上.mp4 │ 高并发编程第二阶段35讲、多线程Two Phase Termination设计模式-...

    Java 多线程技术:(四)获取线程基本信息_暂停线程_线程的优先级_多线程的安全性_线程同步

    获取线程基本信息_暂停线程_线程的优先级_多线程的安全性_线程同步1.线程操作的常用方法2.暂停线程执行 sleep_yield_join_stop3.线程的优先级问题4.多线程的安全性问题5.线程同步1.同步代码块2.同步方法 1.线程操作...

Global site tag (gtag.js) - Google Analytics