我正在编写一个java程序,它跟踪在程序中创建的线程,然后在每个Thread终止时执行一些工作.
我在javadoc中没有看到任何"线程终止挂钩".
目前,我能想到实现我的要求的唯一方法是保持线程对象并以重复的间隔查询其"状态".
有没有更好的方法来做到这一点?
编辑:我无法以任何方式包装runnable或修改runnable.我的代码使用运行时检测,只是检测到创建了一个线程并获取了对Thread对象的引用.此时runnable已经在运行.
您可以使用join()方法.
编辑
如果在线程未终止之前不能阻塞主线程,则可以创建一个子主线程来调用线程,然后用join()
方法等待它们.