使用join()和wait()线程java
发布时间:2020-05-23 23:10:03 所属栏目:MsSql 来源:互联网
导读:我需要制作一系列线程.他们需要按照以下顺序开始: A然后B然后是C,最后是D. D完成后,C可以完成B,然后是A. 在这种情况下,最好使用join()线程还是wait()?为什么? 我的线程需要启动并打印消息Hello我是线程a / b / c / d,当它们完成时,它们需要打印我已完成a /
|
我需要制作一系列线程.他们需要按照以下顺序开始: A然后B然后是C,最后是D. D完成后,C可以完成B,然后是A. 在这种情况下,最好使用join()线程还是wait()?为什么? 我的线程需要启动并打印消息Hello我是线程a / b / c / d,当它们完成时,它们需要打印我已完成a / b / c / d. 解决方法由于您正在等待“其他”线程完成(即完成执行),因此join()将是更好的选择.join()的javadoc简单地说:等待这个线程死掉. 这个机制相对简单: @Override
public void run() {
System.out.println("Hello I'm thread " + getName());
if (otherThread != null) {
while (otherThread.isAlive()) {
try {
otherThread.join();
} catch (InterruptedException e) {
// ignore
}
}
}
System.out.println("I'm finished " + getName());
}
要解释:您需要引用otherThread.所以a指b,b指c,c指d,d不指任何otherThread(它为null). 语句otherThread.join()等待另一个线程完成.它被包装在循环中,因为join()可以抛出InterruptedException(虽然在实践中很少). 希望这有帮助,祝你好运. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在MSSQL Server中将nvarchar转换为数字
- 数据库设计 – SaaS数据库设计 – 多个数据库?分裂?
- MySQL解决SQL注入的另类方法详解
- SQL Server SQL 导入导出Excel数据的语句
- .net – 如何在数据库中存储TimeZoneInfo对象?
- .net – 寻找对象数据库
- mysql Innodb表空间卸载、迁移、装载的使用方法
- sql-server-2008 – SQL Server ManageMent Studio智能感知
- sql-server-2005 – 如何在Sql Server 2005中创建表类型
- sql-server – 如何验证Windows集群以前是否已成功验证?
