NodeManager源码
阅读NodeManager源码的时候注意到一个很有意思的java代码,如下
public static void main(String[] args) throws IOException {
Thread.setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler());
StringUtils.startupShutdownMessage(NodeManager.class, args, LOG);
NodeManager nodeManager = new NodeManager();
Configuration conf = new YarnConfiguration();
new GenericOptionsParser(conf, args);
nodeManager.initAndStartNodeManager(conf, false);
}
测试
下面的测试来自于确认在多线程提交任务的场景下是否可以生效。因为另外一个文章里面提到说executorservice.submit的场景下不生效。但是其实还是可以生效的。
提到的文章:http://blog.csdn.net/u013256816/article/details/50417822
public class MyDefaultUncaughtExceptionHandler {
static class MyUncauthExceptionHandler implements Thread.UncaughtExceptionHandler{
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("UncaughtException:" + t.getName() + " " + e.getMessage());
}
}
public static void main(String args[]){
Thread.setDefaultUncaughtExceptionHandler(new MyUncauthExceptionHandler());
ExecutorService es = Executors.newCachedThreadPool();
es.execute(new Runnable() {
@Override
public void run() {
int i = 2/0;
}
});
es.shutdown();
}
}