【发布时间】:2014-08-21 07:12:11
【问题描述】:
我有一个多线程应用程序,大约需要 1 小时才能完全完成。我想配置一些东西,以便在一个小时后如果整个执行未完成(即主要未完成)我需要在日志中发出警报。可以通过什么方式进行配置。
【问题讨论】:
标签: java multithreading main
我有一个多线程应用程序,大约需要 1 小时才能完全完成。我想配置一些东西,以便在一个小时后如果整个执行未完成(即主要未完成)我需要在日志中发出警报。可以通过什么方式进行配置。
【问题讨论】:
标签: java multithreading main
使用ScheduledExecutorService 安排命令在给定时间段后运行。然后,您可以编写一个方法来记录消息并将其连接到 ScheduledExecutorService。
【讨论】:
你需要一个CountDownLatch
跟踪您创建的线程总数并将锁存器中的插槽数初始化为该数。将对锁存器的引用传递给每个线程。在 finally 块中,在子线程代码的末尾,您应该在线程终止之前调用countdown()。
在您的主线程中,启动所有线程后,您调用await() 方法。 (可选)您可以传递超时,此时您可以强制终止子线程,或调用 system.exit 或其他方法。
【讨论】: