10-其他说明
其他说明
我们还可以测试以下两个有趣的修改。
- 把
Handler中的如下代码注释掉,然后运行程序。能够看到在控制台上打印了大量的信息。虽然ForkJoinPool为了执行任务会启动工作线程,但是任务并不会执行,因为工作线程抛出了异常,所以它会不断地尝试:
System.exit(-1);
- 将
ForkJoinPool的第3个构造参数(异常处理器)修改为null,也会出现类似的情况,因为JVM把异常信息写到了控制台上。
在实现可能抛出异常的工作线程时,请考虑使用处理器来处理异常。