学习到如下几种方法:
1、对于单个的线程,可以采用Future.get()的方法,任务执行完毕后才能拿到结果。
2、对于多个线程,可以采用executor.awaitTemination()的方法,伪代码如下所示:
for(int i = 0;i < n;i++){
executor.execute(task(i));
}
executor.shutdown();
executor.awaitTemination(Long.MAX_VALUE,TimeUnit.SECONDS);
3、可以采用闭锁,制造阀门效应,伪代码如下所示:
#主线程执行
CountDonwLatch done = new CountDownLatch(n);
for(int i = 0;i < n;i++){
executor.execute(task(i));
}
done.await();
#多线程任务中执行
doTask(i);
done.countDown();
本文详细介绍了在多线程环境下执行任务的方法,包括使用Future.get()获取单个线程结果、executor.shutdown().awaitTermination()管理多个线程、以及闭锁机制制造阀门效应确保任务顺序执行。
1839

被折叠的 条评论
为什么被折叠?



