共享模型之工具(一)

1.线程池

1.1.线程池产生背景

1>.线程是一种系统资源,每创建一个新的线程都需要占用一定的内存(分配栈内存),在高并发场景下,某一时刻有大量请求访问系统,如果针对每个请求(任务)都创建一个新的线程,那么对内存的占用是相当大的,有可能还出现OOM(内存溢出),甚至会导致整个系统崩溃;

2>.线程的执行需要消耗CPU资源,由于计算机CPU核心数的有限的,如果在系统中创建了大量线程,那么就会有一部分线程在执行过程中无法获取到CPU执行权(/CPU时间片)而处于阻塞状态,从而引起线程上下文切换问题(保存线程的运行状态,下次运行时再恢复到之前的状态).线程上下文的频繁切换对系统性能也有很大的影响,尤其是在高并发环境下,频繁切换线程上下文反而会导致系统性能降低;

针对上述问题可以知道,系统中线程并不是创建的越多越好,而是需要一个容器将数量有限的线程管理起来,对这些线程进行复用(享元模式),以此来减少系统资源的占用.基于此,线程池应运而生;

1.2.线程池概述

线程池是指在初始化一个多线程应用程序过程中提供一个线程集合,在需要执行新的任务时重用这些线程而不是每次都新建一个线程,避免了创建和销毁线程的额外开销,提高响应速度.线程池中线程的数量通常完全取决于可用内存数量和应用程序的需求.然而,增加可用线程数量是可能的.线程池中的每个线程都有被分配一个任务,一旦任务已经完成了,线程回到线程池中并等待下一次分配任务;

***注意: 线程池中的线程都是非守护线程,不会随着主线程的结束而结束;

1.3.线程池特点

1.3.1.主要特点

1>.线程复用
2>.控制最大并发数
3>.管理线程

1.3.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值