Java 自定义线程池和线程总数控制操作
notifyAll使所有原来在该对象上等待被notify的线程统统退出wait状态,变成等待该对象上的锁,一旦该对象被解锁,它们会去竞争。3 无需控制线程总数每调用一次就会创建一个拥有10个线程工作者的线程池。4 控制线程总数在项目中所有的线程调用,一般都共用1个固定工作者数大小的线程池。比如,Executors.newCachedThreadPool的设置与无界队列的设置因为某些不可预期的情况,线程池会出现系统异常,导致线程暴增的情况或者任务队列不断膨胀,内存耗尽导致系统崩溃和异常。进行补偿,不要乱用JDK支持的自动补偿机制!JDK自带的拒绝策略如下:AbortPolicy:直接抛出异常阻止系统正常工作。DiscardOldestPolicy:丢弃最老的一个请求,尝试再次提交当前任务。
用户评论