当前位置: 首页 > news >正文

个人备案网站 内容wordpress后天地址

个人备案网站 内容,wordpress后天地址,修改wordpress主页标题,网站建设的原则在 Java 中,常见的四种线程池包括: 1. newFixedThreadPool(固定大小线程池) 应用场景:适用于需要限制线程数量,并且任务执行时间比较均匀的场景,例如服务器端的连接处理。优点:线程数…

在 Java 中,常见的四种线程池包括:

1. newFixedThreadPool(固定大小线程池)

  • 应用场景:适用于需要限制线程数量,并且任务执行时间比较均匀的场景,例如服务器端的连接处理。
  • 优点:线程数量固定,能够有效地控制并发线程数,避免过多的线程竞争资源。
  • 缺点:如果线程在执行任务过程中出现异常导致线程终止,而新任务被提交到线程池时,可能会出现等待,直到有线程被释放。
ExecutorService executor = Executors.newFixedThreadPool(5);

示例(下面的newCachedThreadPool、newSingleThreadExecutor的使用是类似的):

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class FixedThreadPoolExample {public static void main(String[] args) {// 创建一个固定大小为 5 的线程池ExecutorService executor = Executors.newFixedThreadPool(5);// 提交 10 个任务到线程池for (int i = 1; i <= 10; i++) {executor.execute(new Task(i));}// 关闭线程池,不再接受新任务,但会等待已提交任务完成executor.shutdown();}static class Task implements Runnable {private int taskNumber;public Task(int taskNumber) {this.taskNumber = taskNumber;}@Overridepublic void run() {System.out.println("Task " + taskNumber + " is running on thread: " + Thread.currentThread().getName());try {// 模拟任务执行耗时Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("Task " + taskNumber + " is completed");}}
}

2. newCachedThreadPool(可缓存线程池)

  • 应用场景:适用于执行很多短期异步任务的场景,例如网页服务器中的请求处理。
  • 优点:可以根据需要创建新线程,如果有可用的线程则复用,能灵活应对短时间内大量的任务请求。
  • 缺点:因为线程数量不固定,可能会创建大量线程,从而导致系统资源消耗过多。
ExecutorService executor = Executors.newCachedThreadPool();

3. newSingleThreadExecutor(单线程池)

  • 应用场景:适用于需要按顺序依次执行任务的场景,例如日志记录。
  • 优点:保证任务按顺序执行,避免多线程环境下的并发问题。
  • 缺点:执行效率相对较低,不适合并发量大的任务。
ExecutorService executor = Executors.newSingleThreadExecutor();

4. newScheduledThreadPool(定时任务线程池)

  • 应用场景:适用于需要执行定时任务或者周期性任务的场景,例如定时数据备份。
  • 优点:能够准确地按照设定的时间间隔执行任务。
  • 缺点:相对复杂,配置不当可能导致任务执行不准确。
ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);

示例:

package com.yuanmomo.demo.thread;import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class ScheduledThreadPoolExample {public static void main(String[] args) {// 创建一个大小为 5 的定时任务线程池ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);// 延迟 3 秒后执行一次任务executor.schedule(new Runnable() {@Overridepublic void run() {System.out.println("延迟任务在3秒后执行");}}, 3, TimeUnit.SECONDS);// 每隔 2 秒执行一次任务executor.scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {System.out.println("执行周期任务");}}, 0, 2, TimeUnit.SECONDS);// 运行一段时间后关闭线程池try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}executor.shutdown();}
}

线程池执行流程

在这里插入图片描述

  1. 任务提交
    • 当向线程池提交一个任务时,线程池会首先判断当前运行的线程数量是否小于核心线程数量。
    • 如果小于,会创建一个新的线程来执行任务。
  2. 核心线程池已满
    • 若核心线程数量已达到设定的最大值,新提交的任务会被放入任务队列中等待执行。
  3. 任务队列已满
    • 如果任务队列已满,并且当前运行的线程数量小于最大线程数,线程池会创建新的线程来执行任务。
  4. 达到最大线程数
    • 当线程数量达到最大线程数,并且任务队列已满时,新提交的任务会根据拒绝策略进行处理。
  5. 线程回收
    • 当线程空闲时间超过一定限度(可设置),且当前运行线程数大于核心线程数时,多余的空闲线程会被回收。

例如:
假设线程池的核心线程数为 5,最大线程数为 10,任务队列容量为 100,拒绝策略为抛出异常。

开始时,陆续提交 5 个任务,线程池会创建 5 个核心线程来执行这些任务。

接着继续提交任务,只要任务数未超过 100,新任务会被放入任务队列等待执行。

当任务队列已满,继续提交任务,此时会创建新的线程(最多到 10 个)来执行任务。

若线程数达到 10 且任务队列已满,再提交新任务,就会根据拒绝策略抛出异常。

线程来执行这些任务。

接着继续提交任务,只要任务数未超过 100,新任务会被放入任务队列等待执行。

当任务队列已满,继续提交任务,此时会创建新的线程(最多到 10 个)来执行任务。

若线程数达到 10 且任务队列已满,再提交新任务,就会根据拒绝策略抛出异常。

http://www.yayakq.cn/news/995090/

相关文章:

  • 网站公司的利润吉林电商网站建设价格
  • 响应式网站手机wordpress woocommerce那里设置每页商品显示数量
  • 免费视频素材网站wordpress 主题 开源
  • 网站正在建设源代码城市建设网站鹤岗市
  • 关于网站项目建设的申请初中生怎么做网站
  • 无锡网站建设外包博客网站源码带后台
  • 提供电子商务网站建设外包服务的企业中国十大证券公司排名
  • 情人节网站怎么做雄安邯郸网站制作多少钱
  • 景区网站策划书站内seo怎么做
  • 崇仁网站建设推广费用南宁物流公司网站建设
  • 绍兴中交水利水电建设有限公司网站珠海网站建设q.479185700強
  • 怎样申请一个免费网站一直免费的服务器下载
  • 2017网站开发语言福步外贸论坛怎么发帖
  • 天津网站经营性备案营业推广的形式包括
  • 银川网站制作公司广西建设职业技术学院
  • 深圳做装修网站费用多少钱wordpress 计时
  • 网站开发技术概况响应式网站国内外现状
  • 江苏网站seo优化个体营业执照可以做网站嘛
  • 网页版传奇网站宣武富阳网站建设
  • 美食网站建设的意义山东城市建设学院网站
  • 免费企业建站系统排名四川设计公司
  • 网络网站开发重庆市建立网站的网络公司
  • 投稿作文网站长沙建设教育培训网
  • 太原网站建设网站舆情优化
  • 做海报找图片的网站小程序公司十大排名
  • 杭州网站建设网站制作网站建设绪论
  • 什么网站可以做ui兼职网络监控管理系统
  • 湘潭网站建设 搜索磐石网络自己做网站要服务器吗
  • 51购物网官方网站网站内容设置
  • 域名没备案如何建设网站小程序模板下载