java - 线程退出回调

标签 java thread-safety

我需要能够为当前运行的线程注入(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/

相关文章:

java - Java使用Arraylist进行选举

java - TagSoup vs. Jsoup vs. HTML Parser vs. HotSax vs

java - split 函数不返回

c# - WinForms中的计时器刻度事件和线程

.net Dictionary.Resize() 异常 - 线程安全?

java - JSONArray 为空

c++ - Boost::互斥锁和 Malloc

c# - 这段代码会杀死我的服务器吗?

java - 如何破坏这个(非?)线程安全对象?

java - 如何删除 XML 中作为 XML 消息一部分的 < 和 >