- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个要求,其中 28 个线程必须完成某些功能。我在匿名内部类中创建了这些线程,例如:
Thread t=new Thread(new Runnable(){public void run()
{//code
}}
);
t.start();
现在我希望在所有这些线程完成那里的工作后开始进一步的执行。
注意:我对 join() 方法感到困惑,因为它使我的线程按顺序运行。
那么谁能建议我如何在这些线程完成工作后让主线程运行。
最佳答案
Note : I am confused about join() method as it makes my threads run sequentially.
如果你有这样的代码,它会这样做:
for (Runnable runnable : runnables) {
Thread t = new Thread(runnable);
t.start();
t.join();
}
但是,您可以启动所有要并行运行的线程,然后对它们全部调用join
。例如:
List<Thread> threads = new ArrayList<>();
for (Runnable runnable : runnables) {
Thread t = new Thread(runnable);
t.start();
threads.add(t);
}
// Now everything's running - join all the threads
for (Thread thread : threads) {
thread.join();
}
// Now you can do whatever you need to after all the
// threads have finished.
当然,还有许多其他方法 - 直接启动线程可能不如使用更高级别的抽象适合您的代码;这取决于您要实现的目标。不过,上面的代码应该可以正常工作 - 假设所有 Runnable
都能够并行运行而不会通过同步相互阻塞。
关于java - 如何在所有子线程执行完毕后运行主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28164990/
我搜索了很多东西,比如: How to show icon blinking on google map 但是根据这个我没有找到如何让通知图标闪烁 我想在这个上闪烁图标 int icon = R.d
我很想知道我是否可以删除或更改 android 在选项卡布局下方提供的类似 drop-shadow 的效果。 最佳答案 我一问这个问题,我就在另一个stackoverflow post中得到答案.无论
我必须通过 AlaramManager 调用我的 BroadcastReceiver。 为此,我所做的不起作用: AlarmActivity.java public class AlarmActivi
我正在尝试执行以下操作: CPU_COUNT=$(cat /proc/stat | grep -E "^cpu[[:digit:]]+ " | wc -l) let CPU_COUNT=CPU_COU
我是一名优秀的程序员,十分优秀!