join:调用线程等待被调用线程执行结束方可执行下面的操作,使用的场景如下,主线程需要调用一个线程A去异步执行一个操作,同时主线程必须等到线程A执行完毕才能执行,join就派上用场了。
具体实现也简单,通过一个线程来判断线程A时候执行完成,用isAlive()判断,如果依然在执行(存活),调用线程A的wait()使主线程等待。
Java代码 收藏代码
public final synchronized void join(long millis)
throws InterruptedException {
long base = System.currentTimeMillis();
long now = 0;
if (millis < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (millis == 0) {
while (isAlive()) {
wait(0);//如果指定时间,则等到线程A执行结束为止
}
} else {
while (isAlive()) {
long delay = millis - now;
if (delay <= 0) {
break;
}
//等待指定的时间
wait(delay);
now = System.currentTimeMillis() - base;
}
}
}
分享到:
相关推荐
Delphi中用多线程实现日志文件的读写与管理
c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程c_多线程...
Python_threading_3_join功能_(多线程_教学教程tutorial)
多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程多线程
本项目主要是实现了在jni中用多线程调用java对象。代码调试通过。直接导入到eclipse即可运行
多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子多线程列子
office文档通过openoffice或者microsoft多线程转换成pdf文档,并通过pdf.js显示
根据网上的资料总结的一个springboot 转换pdf Word文档大小最好2m以下 需要安装OpenOffice.org 3.3 链接:https://pan.baidu.com/s/1onrkhBCNlGLEmf3hPwzXWw 密码:8h5a
多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天多线程聊天
串口通信的实现,编程环境为C#,实现技术采用了多线程方式
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
c#多线程中用pythonnet库调用Python的方法解决死锁问题的源代码 参考csdn博客:https://blog.csdn.net/qiangpi6057/article/details/135076348
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
Qt中利用OpenCV2.4.4多线程打开多摄像...可以明显感觉到打开多线程后主界面不卡了。 只是个多线程的小例子,还有很多不足之处,有待各位完善。 注意:pro文件中的include和lib文件目录需要根据自己电脑上的情况重新配置
当一个进程中用到超过一个线程时,就是所谓的“多线程”。 那么这个所谓的“一段代码”是如何定义的呢?其实就是一个函数或过程(对Delphi而言)。 如果用Windows API来创建线程的话,是通过一个叫做...
多线程在.net中实现是非常容易的。 VB6本身无法实现多线程编程,但是通过第三方控件,也可以很完美的实现多线程。 本例实现的是在主界面开一个新的线程在...例子中用到了Threadfactory 4 和VSFlexGrid8。站内都有资源。
c#多线程中用pythonnet库调用Python的方法死锁的源代码 参考csdn博客:https://blog.csdn.net/qiangpi6057/article/details/135076348
C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例
Qt 多线程及简单实例 demo。 多线程的几大特点: 1.多线程的执行顺序无法保证,与操作系统的调度策略和线程优先级等因素有关。 2.多线程的切换可能发生在任何时刻、任何地点。 3.多线程对代码的敏感度高,因此对...
C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行