java join使用实例_Java多线程中关于join方法的使用实例解析

先上代码

新建一个thread,代码如下:

package com.thread.test;

public class mythread extends thread {

private string name;

public mythread(string name) {

this.name = name;

}

@override

public void run() {

for (int i = 0; i < 100; i++) {

system.out.println(name+"["+i+"]");

}

super.run();

}

}

之后新建测试类,代码如下:

package com.thread.test;

/*

* 0-50执行的是主线程,50-100执行的是a线程,并且将a线程完全执行完后才继续执行主线程

*/

public class threaddemo{

public static void main(string[] args) {

mythread t = new mythread("a");

t.start();

for (int i = 0; i < 100; i++) {

if (i>50) {

try {

t.join();

} catch (interruptedexception e) {

e.printstacktrace();

}

}

system.out.println("主线程"+"["+i+"]");

}

}

}

下面是java platform se8 api中对thread中join方法的解释:

public final void join(long millis)

throws interruptedexceptionwaits at most millis milliseconds for this thread to die. a timeout of 0 means to wait forever.

this implementation uses a loop of this.wait calls conditioned on this.isalive. as a thread terminates the this.notifyall method is invoked. it is recommended that applications not use wait, notify, or notifyall on thread instances.

parameters:

millis - the time to wait in milliseconds

throws:

illegalargumentexception - if the value of millis is negative

interruptedexception - if any thread has interrupted the current thread. the interrupted status of the current thread is cleared when this exception is thrown.

先上代码

新建一个thread,代码如下:

package com.thread.test;

public class mythread extends thread {

private string name;

public mythread(string name) {

this.name = name;

}

@override

public void run() {

for (int i = 0; i < 100; i++) {

system.out.println(name+"["+i+"]");

}

super.run();

}

}

之后新建测试类,代码如下:

package com.thread.test;

/*

* 0-50执行的是主线程,50-100执行的是a线程,并且将a线程完全执行完后才继续执行主线程

*/

public class threaddemo{

public static void main(string[] args) {

mythread t = new mythread("a");

t.start();

for (int i = 0; i < 100; i++) {

if (i>50) {

try {

t.join();

} catch (interruptedexception e) {

e.printstacktrace();

}

}

system.out.println("主线程"+"["+i+"]");

}

}

}

下面是java platform se8 api中对thread中join方法的解释:

public final void join(long millis)

throws interruptedexceptionwaits at most millis milliseconds for this thread to die. a timeout of 0 means to wait forever.

this implementation uses a loop of this.wait calls conditioned on this.isalive. as a thread terminates the this.notifyall method is invoked. it is recommended that applications not use wait, notify, or notifyall on thread instances.

parameters:

millis - the time to wait in milliseconds

throws:

illegalargumentexception - if the value of millis is negative

interruptedexception - if any thread has interrupted the current thread. the interrupted status of the current thread is cleared when this exception is thrown.

我自己的理解就是会强行进入使用join方法的线程,其他线程等待该线程完全执行完后才会进来。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iptables禁止端口和开放端口

1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。 下面是命令实现&#xff1a; iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP 再用命令 iptables -L -n 查看 是否设置好&#xff0c; 好看到全部 DROP 了 这样的设置好了&#xff0c;我们只…

python中级程序员是什么水准_程序员进阶:一篇搞懂Python中级应用

异常处理&#xff1a;try-except 异常即是一个事件&#xff0c;该事件会在程序执行过程中发生&#xff0c;影响了程序的正常执行。一般情况下&#xff0c;在Python无法正常处理程序时就会发生一个异常。 异常是Python对象&#xff0c;表示一个错误。当Python脚本发生异常时我们…

python做excel表格代码_[宜配屋]听图阁

安装两个库&#xff1a;pip install xlrd、pip install xlwt1.python读excel——xlrd2.python写excel——xlwt1.读excel数据&#xff0c;包括日期等数据#codingutf-8import xlrdimport datetimefrom datetime import datedef read_excel():#打开文件wb xlrd.open_workbook(rte…

语文高考识记现代汉字的字形【转】

要点导读&#xff1a;基础知识&#xff0c;既是得分重点&#xff0c;也是常见失分点&#xff0c;13个状元帮你牢记易错知识点&#xff0c;13位名师助你剖析易误点&#xff0c;让你6月7号考场不再有失分点。 备考启示&#xff1a;误点总结&#xff0c;全面剖析&#xff0c;多记…

python分布式框架_高性能分布式执行框架——Ray

Ray是UC Berkeley RISELab新推出的高性能分布式执行框架&#xff0c;它使用了和传统分布式计算系统不一样的架构和对分布式计算的抽象方式&#xff0c;具有比Spark更优异的计算性能。 Ray目前还处于实验室阶段&#xff0c;最新版本为0.2.2版本。虽然Ray自称是面向AI应用的分布式…

java 读取list文本_【java基础】读取本地文件赋给Bean或list、Map

private Map messageTypeControllerMap; private static final String CONTROLLERS_CONFIG_PATH "config/controller/controllers.json"; /** * 从文件中获取 controller的配置&#xff1a;优先级、消息类型、类名 */ public void init(ApplicationContext app) { t…

事务的特性和隔离级别

1、事务的特性&#xff1a;&#xff08;面试题&#xff09; l 原子性&#xff1a;处于同一个事务中的多条语句&#xff0c;要么全都成功&#xff0c;要么全都不成成功。 l 一致性&#xff1a;事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账&#xff1a;转…

python复制文件的方法是_Python中复制文件的9种方法

Python 中有许多“开盖即食”的模块&#xff08;比如 os&#xff0c;subprocess 和 shutil&#xff09;以支持文件 I/O 操作。在这篇文章中&#xff0c;你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现 Python 复制文件操作。 在开始…

纪元java游戏_RPG纪元

0.18中遗留了大量的细节问题以及系统的不平衡。在新版本到来前&#xff0c;我们进行了专门的游戏测试&#xff0c;又发现了很多问题&#xff0c;所以为了游戏的质量&#xff0c;我们决定继续延期此版本的发布&#xff0c;希望新版本可以尽快的到来。目前0.19版本做了大量的优化…

原 hibernate与mysql字段类型对应关系

原 hibernate与mysql字段类型对应关系 发表于8个月前(2015-04-17 08:56) 阅读&#xff08;1102&#xff09; | 评论&#xff08;0&#xff09; 2人收藏此文章, 我要收藏赞01月16日厦门 OSC 源创会火热报名中&#xff0c;奖品多多哦 摘要 hibernate与mysql字段类型对应关系 …

下拉选择框 其他_列表框 vs 下拉列表,哪个更好?

许多UI控件允许用户选择选项&#xff0c;它们包括复选框、单选按钮、切换开关、步进器、列表框和下拉列表。 在本文中&#xff0c;作者对列表框和下拉列表进行了定义&#xff0c;讨论何时使用各个元素&#xff0c;以及各个情况下使用哪一种更加合适。摘要列表框和下拉列表是紧凑…

java 数字信号_数字信号处理理论及C++和Java实现 数字信号处理理论算法与实现...

Willi&#xfffd;hans Steeb University of   Johannesburg, South Africa   Mathematical Tools InSignal Processing With CAnd Java Simulations2005,283pp.Hardcover USD 84.00ISBN 9789812565006数字信号处理理论及C和Java实现W.&#xfffd;H. 斯梯勃著随着信息科学…

springboot整合elasticsearch_Spring Boot学习10_整合Elasticsearch

一、Elasticsearch概念•以 员工文档 的形式存储为例&#xff1a;一个文档代表一个员工数据。存储数据到 ElasticSearch 的行为叫做 索引 &#xff0c;但在索引一个文档之前&#xff0c;需要确定将文档存储在哪里。•一个 ElasticSearch 集群可以 包含多个 索引 &#xff0c;相…

宁波Uber优步司机奖励政策(12月14日到12月20日)

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

php制作图片轮播_图片轮播效果实现方法

图片轮播效果如何实现呢本文主要介绍了JQuery实现图片轮播效果的制作原理以及实现代码&#xff0c;文章末尾附上源码下载&#xff0c;具有很好的参考价值。下面跟着小编一起来看下吧&#xff0c;希望能帮助到大家。用JQuery操作DOM确实很方便&#xff0c;并且JQuery提供了非常人…

python有趣的面试题_一道3行代码的Python面试题,我懵逼了...|python基础教程|python入门|python教程...

https://www.xin3721.com/eschool/pythonxin3721/ 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 今天来说说交流群里一位群友问的Python题目。刚开始由于没有电脑&#xff0c;我也没有运行出来&…

个人应用开发详记. (三)

好久没来更新了... IM即时通讯已进入最后阶段. 各个功能模块 框架基本写好. 剩下的就是细节上的优化了 由于内容上并没有什么大幅度的变动 . 就不上图了 . 元旦回家 放假3天~ 争取年前搞定此APP 转载于:https://www.cnblogs.com/ImyFen/p/5089968.html

ffmpeg php linux,linux(php环境) 安装ffmpeg

实现上传视频获取视频的第一帧当做视频封面1、安装ffmpegffmpeg的下载链接 https://ffmpeg.org/download.html解压安装包tar -jxvf ffmpeg-4.0.tar.bz2进入目录cd ffmpeg-4.0编译安装./configure --enable-shared && make && make install安装完成之后 执行 f…

r语言清除变量_如何优雅地计算多变量 | R语言进阶

社会科学研究经常会遇到“超多变量”的情况——多量表、多维度、多题项&#xff0c;以及复杂的正反计分题……如何更高效地计算量表总分&#xff1f;如何更简洁地进行反向计分&#xff1f;传统的统计工具&#xff08;Excel、SPSS等&#xff09;虽然也能解决这些问题&#xff0c…

php模板初级教程,风格模板初级不完全修改教程

风格模板初级不完全修改教程更新时间&#xff1a;2006年10月09日 00:00:00 作者&#xff1a;就自己的一点点经验&#xff0c;希望能给初接触模版修改的朋友有个参考。关于模版修改&#xff0c; 引用星星签名里的一句话“学好HTML很重要” &#xff1a;)一个风格&#xff0c;…