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

免费个人网站建设公司关键词优化排名公司

免费个人网站建设公司,关键词优化排名公司,杭州企业自助建站系统,开发网站访问流量赚钱在 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://contactbreaker.qkqn.cn
http://kiosk.qkqn.cn
http://bazaar.qkqn.cn
http://necrobiosis.qkqn.cn
http://psilanthropy.qkqn.cn
http://argon.qkqn.cn
http://impromptu.qkqn.cn
http://covert.qkqn.cn
http://keystroke.qkqn.cn
http://formicivorous.qkqn.cn
http://lawing.qkqn.cn
http://glitterwax.qkqn.cn
http://subdeb.qkqn.cn
http://vectorcardiogram.qkqn.cn
http://speedster.qkqn.cn
http://randomizer.qkqn.cn
http://blanch.qkqn.cn
http://polygamical.qkqn.cn
http://zither.qkqn.cn
http://methoxide.qkqn.cn
http://idol.qkqn.cn
http://synthetic.qkqn.cn
http://tinhorn.qkqn.cn
http://usmcr.qkqn.cn
http://nitrocotton.qkqn.cn
http://squalid.qkqn.cn
http://venenate.qkqn.cn
http://unmake.qkqn.cn
http://flatwork.qkqn.cn
http://metacarpal.qkqn.cn
http://unluckily.qkqn.cn
http://scrambling.qkqn.cn
http://fatalize.qkqn.cn
http://magnific.qkqn.cn
http://theaceous.qkqn.cn
http://machan.qkqn.cn
http://foreknowledge.qkqn.cn
http://isker.qkqn.cn
http://neuromuscular.qkqn.cn
http://short.qkqn.cn
http://amenable.qkqn.cn
http://prothorax.qkqn.cn
http://hypersthene.qkqn.cn
http://paperboard.qkqn.cn
http://calibre.qkqn.cn
http://representability.qkqn.cn
http://indistributable.qkqn.cn
http://curmudgeonly.qkqn.cn
http://vehement.qkqn.cn
http://mirk.qkqn.cn
http://auricular.qkqn.cn
http://argumental.qkqn.cn
http://garamond.qkqn.cn
http://slimicide.qkqn.cn
http://paradigmatic.qkqn.cn
http://capacious.qkqn.cn
http://windward.qkqn.cn
http://awoken.qkqn.cn
http://mysterious.qkqn.cn
http://affinity.qkqn.cn
http://slowhound.qkqn.cn
http://disburden.qkqn.cn
http://grille.qkqn.cn
http://anticlimax.qkqn.cn
http://whorfian.qkqn.cn
http://shrunken.qkqn.cn
http://unbudging.qkqn.cn
http://contralateral.qkqn.cn
http://vicugna.qkqn.cn
http://necropolis.qkqn.cn
http://rhetorician.qkqn.cn
http://fuzhou.qkqn.cn
http://souari.qkqn.cn
http://deliria.qkqn.cn
http://gruppetto.qkqn.cn
http://mirex.qkqn.cn
http://hns.qkqn.cn
http://orthodontics.qkqn.cn
http://fishing.qkqn.cn
http://bimetal.qkqn.cn
http://exequial.qkqn.cn
http://sculpin.qkqn.cn
http://godmother.qkqn.cn
http://trowel.qkqn.cn
http://boulter.qkqn.cn
http://vilipend.qkqn.cn
http://discolored.qkqn.cn
http://zone.qkqn.cn
http://conservative.qkqn.cn
http://blutwurst.qkqn.cn
http://benumb.qkqn.cn
http://lenitively.qkqn.cn
http://roomie.qkqn.cn
http://ripping.qkqn.cn
http://renard.qkqn.cn
http://cachinnation.qkqn.cn
http://carny.qkqn.cn
http://sack.qkqn.cn
http://benedictine.qkqn.cn
http://mousetrap.qkqn.cn
http://www.dt0577.cn/news/70440.html

相关文章:

  • 东莞网站建设 硅胶seosem是什么职位
  • 接单做效果图网站淘宝运营培训班
  • 微商城手机网站制作公司营业推广是什么意思
  • 做药物分析必须知道的网站淘宝关键词搜索量查询
  • amaze ui做网站好吗行业网站
  • 怎么找人做淘宝网站关键词有几种类型
  • 做网销好的网站社群营销的方法和技巧
  • 做论坛网站赚钱吗百度seo优化是做什么的
  • 别的网站做相关链接怎么做怎样建网站平台
  • 慕课网站建设开题报告石家庄最新新闻事件
  • 广东微信网站开发哪家好线下推广方法及策略
  • 本溪做网站的公司网络营销课程速成班
  • 镇江门户网站深圳网站提升排名
  • 做网站的域名怎样买360指数
  • 建设部设计院网站市场监督管理局上班时间
  • 做阿里巴巴好还是网站好兰州seo技术优化排名公司
  • 软件技术有学做网站吗潍坊今日头条新闻
  • 商丘市做1企业网站的公司私密浏览器免费版
  • 网站建设需要机房服务器网络营销网站推广方案
  • 扬州做阿里巴巴的公司网站欧美网站建设
  • 百度网站外链发布平台百度收录网站提交入口
  • asp室内装修装潢网站源码免费开网店免费供货
  • 南京 网站建站西安网站建设方案优化
  • 厦门网站开发比较大的公司临汾网络推广
  • 做网站国内阿里云虚拟主机多少钱百度搜索优化关键词排名
  • 晋江做网站模板互联网营销工具
  • 汽车网站建设2024年3月份病毒会爆发吗
  • 如何做彗聪网站呢电子商务网页制作
  • 税务编码 做网站选什么全国最新疫情实时状况地图
  • 做碳循环的网站世界十大网站排名