Jarosław Czub FullStack Developer
Temat: Zabijanie wątków potomnych
Hellow,w aplikacji którą piszę, wystąpił błąd w ten sposób ze w przypadkowym czasie od uruchomienia potrafi się zawiesić w ten sposób, że w ogóle przestaje odpowiadać.
Kilkudniowe badania i okazuje się ze na 64 bitowej JVM zawiesza się na bibliotekach Lucene (w bugtack'u od lucene jest to zaznaczone ale nie ma jeszcze przypisanego błędu), czyli to nie mój kod i nic nie zdziałam bez większego grzebania.
Czyli rozwiązujemy to w inny sposób, newralgiczne miejsce odpalam jako wątek potomny i w głównym badam czy jeszcze żyje, a jeżeli przestaje odpowiadać to go ubijam. I tu zoonk w testach wychodzi, że nie da się zabić wątku który nie odpowiada oraz nie reaguje na sygnały kierowane do niego.
Wszelkiej maści przykłady sa gdy wątek żyje i ma się świetnie, a jak wisi to
wszelkie metody typu: Thread.interrupted(); ExecutorService.shutdown(); itd nie działają.
Zresztą jak się doczytałem na forach to raczej nie da się tego wykonać. Oczywiście da się to obejść na inny sposób ale chciałem zrobić to jak przystało.