我有一个多线程应用程序,需要大约1小时才能完全完成。我想配置一些东西,以便在一个小时后,如果整个执行没有完成(即主要是没有完成),我需要在日志中发出警报。以什么方式可以配置它。
你需要一个CountDownLatch
跟踪您创建的线程总数,并将闩锁中的槽数初始化为该数字。向每个线程传递对闩锁的引用。在finally块中,在子线程代码的末尾,您应该在线程终止之前调用countdown()
。
在主线程中,启动所有线程后,调用await()
方法。你也可以选择传递一个超时,在这个超时点你可以强制终止你的子线程,或者调用系统。退出之类的
使用ScheduledExecutorService来安排命令在给定的一段时间后运行。然后,您可以编写一个方法来记录消息并将其连接到ScheduledExecutorService
。