`
cavalry800528
  • 浏览: 53066 次
文章分类
社区版块
存档分类
最新评论

Java中的join

 
阅读更多

You have thread T1, T2 and T3, how will you ensure that thread T2 run after T1 and thread T3 run after T2?

你有三个线程T1,T2,T3,如何使得T1执行完后再执行T2,T2执行完后再执行T3?

以下是一个可能的实现方法:

public class ThreadJoin implements Runnable {
	
	private final Thread joinTarget;
	public ThreadJoin(Thread joinTarget) {
		this.joinTarget = joinTarget;
	}
	
	@Override
	public void run() {
		if(joinTarget != null) {
			try {
				joinTarget.join();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			System.out.println("Join complete " + Thread.currentThread().getName());
		}
	}
	
	private static class MyThread implements Runnable {
		@Override
		public void run() {
			System.out.println("MyThread");
		}
	}	
	
	public static void main(String[] args) {
		Thread t1 = new Thread(new MyThread(), "Thread1");
		Thread t2 = new Thread(new ThreadJoin(t1), "Thread2");
		Thread t3 = new Thread(new ThreadJoin(t2), "Thread3");
		t1.start();
		t2.start();
		t3.start();
	}
}

 

3
2
分享到:
评论
1 楼 zskangs1126 2013-10-11  
    

相关推荐

    Java中join线程操作实例分析

    Java中join线程操作实例分析 Java中join线程操作实例分析主要介绍了Java中join线程操作的相关原理与实现技巧。 Join线程操作是Java多线程编程中的一种重要机制,它允许一个线程等待另外一个线程完成。通过join()...

    java Fork Join框架及使用

    Fork/Join框架是Java7引入的一种用于并行任务执行的框架,它允许将复杂任务拆分成多个子任务,并行执行,然后通过join操作将结果聚合。Fork/Join框架特别适合处理可以递归拆分的计算密集型任务,比如大数据集的搜索...

    用java写的左关联右关联join类

    在Java编程语言中,"左关联"和"右关联"是数据库查询操作中的概念,通常在SQL中使用JOIN语句实现。在这个场景下,我们讨论的是如何使用Java代码来模拟这些数据库操作,以达到高效、便捷地处理数据关联的目的。 首先...

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    以上就是对Java线程中wait、await、sleep、yield、join用法的总结。这些方法在实际开发中,对于控制多线程运行的时序和协调非常关键。理解这些方法的正确使用方式是掌握Java并发编程的基础。同时,使用时需特别注意...

    【IT十八掌徐培成】Java基础第08天-02.多线程-join-daemon-同步.zip

    在Java中,`join()`、`daemon`线程以及同步机制是多线程编程中的重要概念,对于理解和编写高效的并发代码至关重要。 首先,我们来讨论`join()`方法。在多线程环境中,有时候我们需要确保一个线程在执行完它的任务后...

    java实现innerjoin关联算法

    现在需要根据一个输入的字符"list1.column1=list2.column2,list1.column3=list3.column4"(不是固定的)来实现inner join关系的控制,即list1中的map和list2中map通过key值column1和column2关联,同时list1中的map和...

    java 线程方法join简单用法实例总结

    主要介绍了java 线程方法join简单用法,结合实例形式总结分析了Java线程join方法的功能、原理及使用技巧,需要的朋友可以参考下

    java fork-join框架介绍

    fork/join框架是ExecutorService接口的一个实现,可以帮助开发人员充分利用多核处理器的优势,编写出并行执行的程序,提高应用程序的性能;设计的目的是为了处理那些可以被递归拆分的任务。

    Java并发Fork and join

    Fork/Join框架是Java并发库中的一部分,自Java 7开始引入,它为开发者提供了一种高效的处理大规模计算任务的方法。这个框架基于分治策略,将大任务分解成若干小任务,然后并行执行这些小任务,最后再将结果合并。...

    Java线程之join_动力节点Java学院整理

    Java线程中的`join()`方法是一个非常重要的同步工具,它允许一个线程(通常为主线程)等待另一个线程(子线程)执行完成后再继续执行。`join()`方法定义在`java.lang.Thread`类中,它使得多线程间的协作更加有序。 ...

    译文:Fork and Join: Java Can Excel at Painless Parallel Programming Too!

    本文将简要回顾Java中的并发编程基础知识,介绍java.util.concurrent包提供的高级并发原语,并深入探讨Fork/Join框架及其在Java SE 7中的应用。 首先,让我们回顾一下Java中基本的并发机制。自Java早期版本起,线程...

    Java中的Fork,Join框架深度解析

    通过上述介绍和示例代码,你应该对Java中的Fork/Join框架有了更深入的理解。这种框架特别适合于需要并行处理大量子任务的场景,如大数据处理、图像处理等领域。希望本文能够帮助你在实际项目中更好地应用Fork/Join...

    java8中文api

    在Java中,API包含了类、接口、枚举和注解等,为开发者提供了丰富的功能和工具。 首先,Java 8中的主要新特性之一是Lambda表达式。Lambda表达式简化了函数式编程,允许开发者以更简洁的方式编写匿名函数。例如,...

    tud-db:我自己在 Java 中实现 SortMergeJoin 和 HashJoin(来自 SQL 的著名 INNER JOIN)

    本篇文章将重点讨论如何在Java中实现两种常见的JOIN算法:SortMergeJoin和HashJoin。 一、SortMergeJoin SortMergeJoin是一种基于排序的JOIN算法,它的基本思想是首先对参与JOIN的两个关系(即表)按照JOIN条件...

    java 携子之手 与子偕老(join)

    在Java编程语言中,"join"是一个非常关键的线程操作,它允许一个线程等待另一个线程完成其执行。这个概念如同标题“携子之手 与子偕老”所表达的,线程间相互协作,直到共同完成任务。在多线程环境下,join()方法是...

    java8中forkjoin和optional框架使用

    Java 8 中的 Fork/Join 框架和 Optional 框架使用 Java 8 中的 Fork/Join 框架和 Optional 框架是两个非常重要的框架,它们在多线程编程和数据处理中发挥着重要作用。下面我们将详细介绍这两个框架的使用和原理。 ...

    Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包

    在这个"Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包"中,我们可以深入探讨以下几个关键知识点: 1. **Lambda表达式**: Lambda表达式是Java 8的一大亮点,它简化了对匿名函数的处理...

    Java并发Fork-Join框架原理

    Java并发Fork-Join框架原理是Java7中提供的一种并行执行任务的框架,旨在提高程序的执行效率和性能。该框架的核心思想是将大任务分割成若干个小任务,并将其分配给不同的线程执行,以充分利用多核CPU的计算能力。 ...

    Java 中文API 谷歌翻译

    8. **并发改进**:`Fork/Join框架`和`Parallel Streams`是Java 8在并发处理上的提升,提供了并行计算的能力,提高了多核处理器环境下的性能。 9. **Type注解**:Java 8允许在类型声明(包括参数、返回类型、字段和...

Global site tag (gtag.js) - Google Analytics