多线程编程时,注意每个线程处理的任务是否存在异常的情况,如果存在,必须try catch进行捕获,否则只要一个线程出现异常,就会阻塞后面的线程的执行。
工资代发业务时,通过rabbitMQ消息队列的方式和其他系统进行交互,在对发过来的消息进行校验员工数据,其中一条数据出现了异常,导致后面的消息一只阻塞在队列中,无法消费。
例如下面的例子:
参考:https://my.oschina.net/u/1462914/blog/1630085
前言
今天我们一起来做个简单有趣的实验。熟悉Java的童鞋,对ScheduledExecutorService
类应该不陌生。不记得的童鞋,先回忆下。
实验一
我们先看下下面这段简单的代码。如下:
public class ExecutoryServiceTest {
private static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10);
public static