很长时间对join方法感到疑惑,不明白到底是谁要阻塞,谁要继续执行(线程这部分亟需加强)。今天和一网友交流后疑惑得到解决,在此表示感谢Stephen_Liu。
假如在main方法中有个线程A,执行了A.join(),那么线程A继续执行,而main线程这阻塞在A.join()处,直到线程A执行完毕并正常退出,此时main方法中的A.join()才返回,然后继续执行A.join()后面的代码。
public class ThreadJoin extends Thread {
public static int n = 0;
static synchronized void inc() {
n++;
}
public void run() {
try {
for (int i = 0; i < 10; i++) {
inc();
sleep(3);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Thread thread[] = new Thread[100];
for (int i = 0; i < thread.length; i++) {
thread[i] = new ThreadJoin();
}
for (int i = 0; i < thread.length; i++) {
thread[i].start();
}
for (int i = 0; i < thread.length; i++) {
thread[i].join(); //不使用这句话n是个随机数,使用n=1000
}
System.out.println("n=" + ThreadJoin.n);
}
}
分享到:
相关推荐
inner join、 left join 、right join、 outer join之间的区别
6. 交叉连接(Cross Join):生成笛卡尔积――它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行都一一匹配。 在 SQL 中,可以使用 FROM 子句指定连接类型,例如: * CROSS ...
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)是三种最基本的连接类型。在本节中,我们将详细介绍左连接、右连接和内连接的区别和联系。 左连接(LEFT JOIN) 左连接返回左表中的所有行,右表...
Join on/inner join on/full join on/full outer join on/left join on/right join on/cross join on; 在使用jion时,on和where条件的区别;
mysql join方法大全notebook
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
线程的基本概念、线程类、任务类、线程优先级、sleep()方法(休眠)、yield()方法(礼让)、join方法(合并)、interrupt()方法(中断),线程的生命周期 线程 与 进程 的关系:**有一个进程中至少包含一个线程 **...
比较实用的方法,已经用到项目里,很好用的一个方法
LINQ to datable实现Left join right join full join VB2010源码
(Left join , Right Join, Inner Join)用法详解,对Left join , Right Join, Inner Join完全掌握,由浅入深,真正领悟。
Mysql之innerjoin,leftjoin,rightjoin详解.pdf
Mycat作为一个中间件,可以提供跨库JOIN的解决方案,满足用户的需求。 1. 跨库JOIN不分库 在不分库的情况下,跨库JOIN可以使用Mysql的JOIN语句来实现。Mysql提供了多种JOIN类型,包括INNER JOIN、LEFT JOIN、RIGHT...
Python 兵法编程 251_join方法的使用.mp4
SQL语句inner join,left join ,right join连接的不同之处, 非常实用
赠送jar包:lucene-join-7.2.1.jar; 赠送原API文档:lucene-join-7.2.1-javadoc.jar; 赠送源代码:lucene-join-7.2.1-sources.jar; 赠送Maven依赖信息文件:lucene-join-7.2.1.pom; 包含翻译后的API文档:lucene...
js中的push和join方法使用介绍.docx
是第一次在C#中接触Thread,自己研究了一下其中Thread.Join()这个方法,下面谈谈自己的理解。 Thread.Join()在MSDN中的解释很模糊:Blocks the calling thread until a thread terminates 有两个主要问题: ...
这篇文章主要介绍了python线程join方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 几个事实 1 python 默认参数创建线程后,不管主线程是否执行...