许久许久没有写过博客了,以前上班总是没有时间,但是总感觉写博客还是很好的一种记录自己技术进程的一种方式
于是在辞职后来到北软,又一次上学了,又一次有时间来写博客了,所以再次开始写博客了,呵呵,再次当学生的感觉
真好!!!!
这次说的是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
分享到:
相关推荐
第3章 多线程(二) Java 高级程序设计 Java高级程序设计-多线程(二)全文共34页,当前为第1页。 回顾 进程一般代表一个应用程序,一个进程中可以包含多个线程。 合理使用多线程能够提高程序的执行效率,处理高并发...
本压缩包,总共包含两个文档,JAVA多线程编程详解-详细操作例子和 Java多线 程编程总结 例如,runnable、thread、stop()、 suspend、yield、setPriority()、getPriority()、synchronized、wait()、join、线程池同步...
25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................
7、 浅析 Java Thread.join() : java多线程实现主线程等待所有子线程执行完毕 16 8、 线程运行中抛出异常的处理 19 9、 Callable 有返回值的线程 20 10、 Callable结合FutureTask的多线程使用(免打扰模式) 24
25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................
本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧
C#多线程实验,就AutoResetEvent,ManualResetEvent,Thread.join(),委托多线程回调。
ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的类 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程类 demoPri.java 调用上面这个类...
解决了多个进程或者线程对共享资源的争夺 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...
1.2 创建多线程...................................................................................................................7 1.2.1 继承Thread 创建线程...............................................
这段代码实现了一个下载器,可以同时下载多个文件。其中,构造函数MultiThreadDownloader接收一个URL数组和两个整数数组作为参数,分别表示每个URL的起始...最后,通过调用每个线程的join()方法等待所有线程执行完毕。
Java多线程 [TOC] 线程状态 1.New:尚未启动的线程的线程状态 2.Runnable:可运行线程的线程状态,等待CPU调度 3.Blocked:线程阻塞等待监视器锁定的线程状态 4.Waiting:等待线程的线程状态(wait、join、park) 5....
Java实验指导书_多线程 《Java语言程序设计基础教程》 上机实验指导手册 异常处理 【目的】 ①线程的创建和运行 ②Thread类的sleep、join等方法的使用 ③线程同步
1.2 创建多线程...................................................................................................................7 1.2.1 继承Thread 创建线程...............................................
分享的多线程技术不是告诉你什么是线程,线程的状态,而是我们在开发中容易踩的坑,受过的伤害。我不会告诉你什么是爱情,但是我会告诉你爱过。 一 基础: 1,Thread.sleep(0)的作用 2,为什么线程会带来性能问题 3...
文章目录1、进程与线程2、创建多线程2.1、继承Thread类2.2、实现Runnable接口2.3、使用匿名内部类实现2.4、实现Runnable接口的好处2.5、使用Callable和Future创建线程3、线程的生命周期4、几种特殊线程4.1、join线程...
│ 高并发编程第二阶段33讲、多线程Thread-Per-Message设计模式.mp4 │ 高并发编程第二阶段34讲、多线程Two Phase Termination设计模式-上.mp4 │ 高并发编程第二阶段35讲、多线程Two Phase Termination设计模式-...
主要介绍了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设计模式-...
获取线程基本信息_暂停线程_线程的优先级_多线程的安全性_线程同步1.线程操作的常用方法2.暂停线程执行 sleep_yield_join_stop3.线程的优先级问题4.多线程的安全性问题5.线程同步1.同步代码块2.同步方法 1.线程操作...