我有一个创建线程的代码。我需要知道如何在发射前等待它完成。
Map<String, String> accountsToRaidWith = Functions.getAccountsByCrew(accounts, crew);
for (Map.Entry<String, String> entry : accountsToRaidWith.entrySet()) {
BossRaiding R1 = new BossRaiding(entry.getKey(), entry.getValue(), raidid);
R1.start();
}
boolean launched = Functions.launchRaid(raidid, id);
class BossRaiding implements Runnable {
private Thread t;
String name;
String id;
String raidid;
BossRaiding (String name, String id, String raidid) {
this.name = name;
this.id = id;
this.raidid = raidid;
}
public void run() {
Functions.joinRaid(raidid, id);
}
public void start () {
if (t == null) {
t = new Thread (this);
t.start ();
}
}
}
我正在尝试等待所有帐户加入,然后再启动。我似乎找不到一个正确的方法。
1条答案
按热度按时间jk9hmnmh1#
那个
Thread t
对象有一个方法:join()
. 这将冻结执行该方法的线程,直到t
停止。因此,你可以在
BossRaiding
:然后循环所有示例,调用
join()
所有的人。如果你完成了整个循环,每个线程都完成了。