初次使用多线程知识编程,碰到问题了。
我写了一个单例模式的线程池实现,然后每次接收到订单创建请求后,都通过它去将创建好的订单信息异步推送到销售平台,第一次执行的时候没问题,但第二次执行时就报错了,因为线程池被销毁,不能接受新的线程请求。但是把这个去掉的话,我的代码里就没得啥地方关闭线程池了,不知道会不会有别的什么影响。
为了防止接口等待,我在自定义工厂类里面把线程默认设置成了守护线程。
public void pushOrder(Order order){
ThreadPool pool = ThreadPool.getInstance();
pool.execute(new PushOrderThread(order));
pool.shutdown();
}