多线程-05-线程池

一、线程池介绍

1、什么是线程池?

  • 线程池就是一个可以复用线程的技术

2、不使用线程池的问题

  • 如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,==而创建新线程的开销是很大的,==这样会严重影响系统的性能。

3、线程池工作原理

在这里插入图片描述

  • 当一提交一个新任务到线程池时,线程池会进行判断核心线程池是否都在执行任务
  • 如果核心线程池有空闲线程,则从核心线程池中去一个线程来执行任务,直到当前核心线程全被占用(核心线程池已满)
  • 如果当前核心线程池已满,继续提交的任务就会被保存到阻塞队列中,等待被执行
  • 如果阻塞队列满了,那就创建一个新的线程执行当前任务,知道线程池中的线程数达到线程池的最大线程数
  • 这时再有任务来,由包和策略来处理提交的任务

4、线程池的好处

  • 降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java多线程中,线程池是一种重要的多线程管理机制。引用中的示例代码展示了如何使用线程池来执行任务。在示例中,通过创建一个线程池工厂,指定线程池的核心线程数、最大线程数、线程存活时间、任务队列等参数来创建线程池。然后循环提交任务给线程池,通过execute方法执行任务。每个任务会在一个空闲的线程中执行,实现了线程的复用和任务的异步执行。 另外,引用中的示例展示了如何使用定时任务的线程池。通过创建一个定时任务线程池,可以指定任务的延时时间、间隔时间和执行次数,从而实现定时执行任务的功能。 此外,引用提到了Java虚拟机使用的线程模型,即KLT内核级线程。KLT线程由系统内核管理,它保存线程的状态和上下文信息,并且线程阻塞不会引起进程阻塞。在多处理器系统上,多线程可以在多处理器上并行运行。KLT线程的创建、调度和管理由内核完成,相比于ULT用户级线程,KLT线程的效率较慢,但比进程操作快。 综上所述,Java多线程中的线程池是一种重要的多线程管理机制,可以实现线程的复用和任务的异步执行。同时,Java还支持定时任务的线程池和内核级线程模型。123 #### 引用[.reference_title] - *1* *2* *3* [java多线程和线程池](https://blog.csdn.net/qq_29996285/article/details/118955325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值