linux线程时间片是多少_合理使用线程池

前言

线程池是多线程和并发编程的重要手段,本文尝试从操作系统、线程池实现原理和资源分配三个方面来分析,解释如何高效地使用线程池以及背后的逻辑。

操作系统知识

在介绍线程池之前,我们先来了解一下操作系统相关的知识。

1.时间片

我们的服务器大多是分时操作系统,这种操作系统将系统资源(特别是CPU)进行时间上的分割,每个时间段称为一个时间片,以时间片轮转的方式为多个任务提供服务。一个CPU同一时间只能执行一个任务,但是由于时间片快速轮转,给用户的感觉好像是在同时执行多个任务。

2.进程和线程

进程是操作系统进行资源分配的基本单位,线程是操作系统调度的最小单元。每个进程都有自己的地址空间,进程包含线程,一般一个进程拥有一条守护线程,多条普通线程。线程共享进程的全部系统资源,每条线程又拥有自己的调用栈、寄存器、本地存储。进程是一个“运行中的程序”,而线程是实际的运作单位。

3.调度

调度是操作系统对任务或者进程/线程进行资源分配的方法。多任务或者多进程、多线程在操作系统上同时运行时,只有分配了时间片和其他资源的任务、进程/线程才能真正被执行,其他的都处在排队等待状态。因此操作系统一般将任务和进程/线程分别放在任务队列和进程/线程队列中,在发生调度时,使用一定的算法从就绪队列中选出将要执行的任务或者进程/线程,为它分配资源(内存、CPU时间片等)。

发生调度的时机:1.正在运行的进程/线程运行完毕;2.运行中的进程/线程要求IO操作;3.某种操作(比如等待锁、线

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值