使用ExecutorService threadsafe聚合total的多线程Java回调
在我的主要方法中,我声明了30个可运行的worker,然后向每个worker传递他们需要完成的一些任务。我希望它在实时报告,作为一个整体,而不是阻止工人的执行。实时报告应该只是控制台的一个带有一些统计信息的println
伪代码:
- 创建30个工作线程池李>
- 为每个工人创建x个作业李>
- 启动计时器以跟踪每个工作进程的性能并开始执行李>
- 每当工作程序完成一项任务时,它都应该回调main中的一个方法,该方法将递增一个int,以跟踪已完成的数量。这必须是线程安全的
- 每5秒,在屏幕上打印完成的作业数,直到所有作业完成李>
# 1 楼答案
逻辑是合理的,只需使用原子整数。incrementAndGet()用于计数,您就可以开始了
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html