Join 方法的意思就是后面的线程要运行 ,只有调用join方法的这个线程is dead 或 超过指定的时间,才能执行;
public final void join() //只有当前线程isdead 后面的才能运行 public final synchronized void join(long millis) // 线程isdead or over millis
public class ThreadJoinExample { public static void main(String[] args) { Thread t1 = new Thread(new MyRunnable(), "t1"); Thread t2 = new Thread(new MyRunnable(), "t2"); Thread t3 = new Thread(new MyRunnable(), "t3"); t1.start(); //start second thread after waiting for 2 seconds or if it's dead try { t1.join(2000);// 如果把这里改成t1.join()那么就只能等到t1dead 才执行t2 } catch (InterruptedException e) { e.printStackTrace(); } t2.start(); //start third thread only when first thread is dead try { t1.join(); } catch (InterruptedException e) { e.printStackTrace(); } t3.start(); //let all threads finish execution before finishing main thread try { t1.join(); t2.join(); t3.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("All threads are dead, exiting main thread"); } } class MyRunnable implements Runnable{ @Override public void run() { System.out.println("Thread started:::"+Thread.currentThread().getName()); try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Thread ended:::"+Thread.currentThread().getName()); } }
output :
Thread started:::t1 Thread started:::t2 Thread ended:::t1 Thread started:::t3 Thread ended:::t2 Thread ended:::t3 All threads are dead, exiting main thread
相关推荐
MySQL中的Nested-Loop Join(NLJ)是一种基本的JOIN操作实现方式,主要用于处理两个或多个表之间的连接。NLJ的基本思想是逐行遍历一张表(称为外部表),然后对每一行与另一张表(称为内部表)进行匹配。这个过程...
小结 MapReduce 之 MapJoin 和 ReduceJoin 是两种常见的 Join 操作,用于连接来自不同数据源的数据。MapJoin 可以减少数据传输量,提高计算效率,而 ReduceJoin 可以处理大量的数据。根据具体的业务需求和数据特点...
SQL 外链接操作小结 inner join left join right join SQL 外链接操作是关系型数据库管理系统中的一种基本操作,用于从多个表中检索数据。外链接操作可以分为三种:inner join、left join 和 right join。 inner ...
#### 小结 - `INNER JOIN`用于获取两个表之间的交集,适用于需要精确匹配的情况。 - `OUTER JOIN`(左外联接、右外联接和全外联接)用于处理不完全匹配的情况,能够提供更全面的数据视图。 - `CROSS JOIN`用于生成...
### Python打包文件夹的方法小结(zip, tar, tar.gz等) 在进行软件开发的过程中,我们经常需要将项目文件打包成一个归档文件,方便传输或者发布。Python 提供了多种方式来实现文件夹的打包,包括但不限于 `zip`, `...
#### 小结 通过以上示例可以看出,过滤条件放在`ON`子句中和放在`WHERE`子句中的区别在于: - **ON子句**:过滤条件会影响连接操作本身,即不满足条件的记录将完全不参与连接操作。 - **WHERE子句**:过滤条件只对...
### 数据文件处理命令小结 #### 一、转换和删除重复命令——`tr` `tr` 命令主要用于字符转换或删除重复字符。它在Linux运维中非常实用,能够帮助用户快速修改文本文件中的字符。 ##### 命令格式 ``` tr [option] ...
从之前的章节中,我们知道PowerShell将一切存储在对象中,那这些对象中包含了一系列中的称之为方法的指令。默认文本存储在String对象中,它包含了许多非常有用的处理文本的命令。例如,要确定一个文件的扩展名,可以...
join方法用于将数组中的所有元素连接成一个字符串。它接受一个可选参数作为分隔符,用于插入数组元素之间。如果未指定分隔符,默认使用逗号。例如,以下代码展示了如何使用join方法: ```javascript var arr1 = [1,...
【数据库知识小结】 在IT领域,数据库是一个至关重要的组成部分,尤其在数据管理和分析中扮演着核心角色。这里我们将深入探讨Oracle数据库以及一些常见的数据库理论和优化策略。 首先,让我们来了解一下数据库三...
可以看到,Left Join 语句返回了包括左表 A 中的所有记录和右表 B 中联结字段相等的记录。 2. Right Join Right Join 也称为右联接,它返回包括右表中的所有记录和左表中联结字段相等的记录。例如,使用 Right ...
标题:“PLSQL优化规则小结” 描述:本文总结了PL/SQL优化的若干规则,旨在提升数据库查询效率,是作者实践经验的提炼。 知识点详述: ### 1. 避免对索引列进行计算 - **原规则**:尽量避免在WHERE子句中对索引...
### Python连接字符串的方法小结 在Python编程中,字符串连接是一项基本且常用的操作。无论是处理文本数据、构建复杂的用户界面还是生成动态内容,都需要用到字符串连接的技术。本篇文章将详细介绍几种常用的Python...
接着,我们讨论几种精准查找的方法。`IN`关键词用于指定一个值的范围,例如`SELECT * FROM students WHERE native IN ('湖南', '四川')`将找出籍贯为湖南或四川的学生。`BETWEEN...AND`用来查询处于两个值之间的记录...
在编程语言JavaScript中,字符串操作是开发过程中经常遇到的一个主题,本文对JavaScript字符串处理常见的操作方法进行一个全面的小结,内容包括字符串的合并、转换、截取、分割、获取字符和字符串反转等实用技巧。...
根据给定的文件信息,以下是对“PHP笔试题小结”中涉及的重要知识点的详细解析: ### 1. 表单中GET与POST提交方法的区别 GET和POST都是HTTP请求方法,用于向服务器发送数据。GET请求是通过URL参数传递数据,这使得...