java线程池的组成和作用,Java线程池的用法

  java线程池的组成和作用,Java线程池的用法

  线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中

  如何解决写爬虫IP受阻的问题?立即使用。

  如果一个线程在托管代码中处于空闲状态(比如等待一个事件),线程池将插入另一个工作线程来保持所有处理器忙碌。

  如果线程池中的所有线程总是很忙,但队列中有挂起的作业,线程池将在一段时间后创建另一个工作线程,但线程数永远不会超过最大值。超过最大值的线程可以排队,但在其他线程完成之前,它们不会启动。(推荐学习:java课程)

  Java四种线程池的使用:

  Java执行器提供了四个线程池,即:

  NewCachedThreadPool创建一个可缓存的线程池。如果线程池的长度超过处理需要,它可以灵活地回收空闲线程。如果没有回收,它可以创建新的线程。

  NewFixedThreadPool创建一个定长线程池,可以控制并发线程的最大数量,多余的线程会在队列中等待。

  NewScheduledThreadPool创建一个固定长度的线程池,它支持计划的和定期的任务执行。

  NewSingleThreadExecutor创建一个单线程线程池,只使用唯一的工作线程执行任务,保证所有任务都按照指定的顺序(FIFO、LIFO、priority)执行。

  newCachedThreadPool

  创建一个可缓存的线程池。如果线程池的长度超过了处理需要,可以灵活地回收空闲线程。如果没有回收,可以创建一个新线程。示例代码如下:

  包装测试;

  导入Java . util . concurrent . executorservice;

  导入Java . util . concurrent . executors;

  公共类ThreadPoolExecutorTest {

  公共静态void main(String[] args) {

  ExecutorService cachedThreadPool=executors . newcachedthreadpool();

  for(int I=0;i 10i ) {

  final int index=I;

  尝试{

  Thread.sleep(索引* 1000);

  } catch (InterruptedException e) {

  e . printstacktrace();

  }

  cachedthreadpool . execute(new Runnable(){

  公共无效运行(){

  system . out . println(index);

  }

  });

  }

  }

  }以上是java中什么是线程池的详细介绍。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: