現在実行中のスレッドに終了コードを挿入できるようにする必要があります。私はしばらくこれに苦労してきましたが、最終的に解決策を思いつきました。これは、私がやっていることと似たコードです:
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();
}
それはうまく機能しているようで、私が望んでいることを正確に実行します。私の唯一の懸念は、これが漏れやその他の望ましくない副作用を引き起こすかどうかです。
または、これはまったく問題ありません。そうであれば、これは非常に便利です。既存のスレッドに終了コードを動的に追加できる単純なライブラリを確認できました。