我需要能够为当前运行的线程注入(inject)一些退出代码。我已经为此苦苦挣扎了一段时间,我终于想出了一个解决方案,这里有一些类似于我正在做的代码:
public static void injectThreadExitCallback(final Runnable callback) {
final curr = Thread.currentThread();
new Thread() {
@Override
public void run() {
try {
curr.join();
callback.run();
} catch (InterruptedException ex) {
... logging ...
}
}
}.start();
}
它似乎工作正常并且完全符合我的要求,我唯一担心的是,如果这导致任何泄漏或其他不良副作用,我可能看不到。
或者这是否非常好,如果是的话,这非常有用。我可以看到一个简单的库,它可以动态地将退出代码添加到现有线程。
最佳答案
你最好做
new Thread () {
@Override
public void run () {
try
{
// Thread logic here
}
finally
{
// Thread exit logic here
}
}
}.start ();
关于java - 线程退出回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780486/