可以通过设置核心线程数和最大线程数都为1来创建一个只有一个线程的ThreadPoolExecutor,代码如下:

ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1,
        0L, TimeUnit.MILLISECONDS,
        new LinkedBlockingQueue<Runnable>());

其中,参数解释如下:

  • 'corePoolSize':核心线程数,即线程池中始终保持的线程数,为1。
  • 'maximumPoolSize':最大线程数,即线程池中允许的最大线程数,也为1。
  • 'keepAliveTime':线程空闲时间,当线程池中的线程数大于核心线程数时,空闲线程的存活时间,为0。
  • 'unit':时间单位,这里选择毫秒。
  • 'workQueue':任务队列,使用无界队列LinkedBlockingQueue,因为最大线程数为1,任务队列不会满。
使用ThreadPoolExecutor创建单个线程池

原文地址: https://www.cveoy.top/t/topic/ltZP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录