如果连接线程不起作用,建议做什么?Java:如果加入线程无效:中断还是继续?
for (List t : threads) {
try {
t.join();
} catch (InterruptedException e) {
log.error("Thread " + t.getId() + " interrupted: " + e);
// and now?
}
}
是将它推荐给打破,然后(什么与不是吗?加入其他线程接下来会发生),或者你至少应该尝试加入线程的休息,然后去?
感谢您的建议!
==>结论:您应该再次尝试加入特定线程t或者您应该中断此特定线程t并继续。
for (List t : threads) {
try {
t.join();
} catch (InterruptedException e) {
try {
// try once! again:
t.join();
} catch (InterruptedException ex) {
// once again exception caught, so:
t.interrupt();
}
}
}
那么您对此解决方案有何看法?并且做“t.interrupt()”或者它应该是Thread.currentThread()。interrupt(); ?
谢谢! :-)
取决于你想要做什么...... – m0skit0 2012-02-23 10:52:16
我想你就错了。正如@aix所说的,如果抛出异常,那么它的当前线程已被中断。在这种情况下不是线程't'。 – Johannes 2012-02-23 10:55:48
所以无论如何,你会建议我做什么?打破程序?继续加入列表中的下一个线程?再次尝试加入列表中的所有线程?再试一次只加入特定的线程t?感谢:-) – nano7 2012-02-23 11:52:04