Java-多线程Java

【并发编程】- 线程池篇

2021-01-05  本文已影响0人  双木ll之林

线程池的主要处理流程


ThreadPoolExecutor执行execute()方法的示意图



    threadsPool.execute(new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
        }
    });
Future<Object> future = executor.submit(harReturnValuetask);
                try {
                        Object s = future.get();
                } catch (InterruptedException e) {
                        // 处理中断异常
                } catch (ExecutionException e) {
                        // 处理无法执行任务异常
                } finally {
                        // 关闭线程池
                        executor.shutdown();
                }

shutdownshutdownNow区别:

  • shutdownNow首先将线程池的状态设置成STOP,然后尝试停止所有的正在执行或暂停任务的线程,并返回等待执行任务的列表
  • shutdown只是将线程池的状态设置成SHUTDOWN状态,然后中断所有没有正在执行任务的线程。

建议使用有界队列:有界队列能增加系统的稳定性和预警能力。


上一篇下一篇

猜你喜欢

热点阅读