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

品牌网站建设 app建设基层建设检索网站

品牌网站建设 app建设,基层建设检索网站,简述网站规划的任务,手机网站开发建设方案线程池的定义和运行逻辑 多线程的问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么一个很自然的想法就出现了…

线程池的定义和运行逻辑

多线程的问题:
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间

那么一个很自然的想法就出现了,如果能有一种技术使得线程可以复用,即执行完一个任务,并不被销毁,而是可以继续去执行其他任务就好了。

就此,线程池技术应运而生。

线程池的运行逻辑如下:

  • 作为一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务
  • 线程池线程都是后台线程。
  • 每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。
  • 如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池会自动添加另一个辅助线程,以确保所有处理器都保持繁忙状态。这样可以更有效地利用系统资源,提高并发处理能力
  • 如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程,但线程的数目永远不会超过最大值。
  • 超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。

线程池的组成部分主要分为3个部分,这三部分配合工作得到一个完整的线程池:

  1. 任务队列,存储需要处理的任务,由工作的线程来处理这些任务
    • 通过线程池提供的API函数,将一个待处理的任务添加到任务队列,或者从任务队列中删除。
    • 已处理的任务会被从任务队列中删除
    • 线程池的使用者,也就是调用线程池函数往任务队列中添加任务的线程就是生产者线程
  2. 工作的线程(任务队列任务的消费者),N个
    • 线程池中维护了一定数量的工作线程, 他们的作用是是不停的读任务队列, 从里边取出任务并处理
    • 工作的线程相当于是任务队列的消费者角色
    • 如果任务队列为空,工作的线程将会被阻塞(使用条件变量/信号量阻塞
    • 如果阻塞之后有了新的任务,由生产者将阻塞接触,工作线程开始工作。
  3. 管理者线程(不处理任务队列中的任务),1个
    • 特的任务是周期性的对任务队列中的任务数量以及处于忙状态的工作线程个数进行检测。
      • 当任务过多的时候,可以适当的创建一些新的工作线程(消费者)
      • 当任务过少的时候,可以适当的销毁一些工作的线程。

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

相关文章:

  • 宁波市江东区地块建设网站dede网站安全
  • 未成年人思想道德建设网站wordpress 文章图片插件
  • python做网站吗建设 信用中国 网站
  • seo优化网站推广全域营销获客公司七台河哈尔滨网站建设
  • 免费建站哪家性价比高携程旅行网站建设分析
  • 北京网站建设公司分形科技茂名企业建站程序
  • 平面设计最常用的网站广东建设信息网是什么网站
  • 30秒网站wordpress在哪里输入统计代码
  • 东莞物流公司优化建立生育支持政策体系
  • 西部数码网站备案婚庆公司策划书
  • 做手机网站一般要多少钱新乡市建设局网站
  • 怎么使用织梦做下载网站wordpress 交友主题
  • 重庆公司网站建设步骤南昌seo排名外包
  • 论坛网站怎么做排名嘉兴做网站软件
  • 外贸响应式网站做问卷调查的网站有哪些
  • 本地建设网站怎么查看后台账号国内最炫酷的网站
  • 网站如何布局汕头网站网店建设
  • 如何做seo整站优化大气婚庆网站源码
  • win8导航网站源码永久免费域名空间注册
  • 一键制作单页网站如何在医院推广产品
  • 石家庄微网站建设公司西安门户网
  • 知名商城网站建设公司株洲网站建设平台
  • 贵州建设厅报名登录网站长沙设计公司排行榜
  • php做简单网站 多久网页传奇游戏加速器
  • 搜h网站技巧wordpress价格插件
  • 江苏水利工程建设局网站wordpress网络电台
  • 珠海手机网站建设做周边的网站
  • 充值网站分销站怎么做教育网站制作价格
  • 加强网站硬件建设做网站免费送域名
  • 大连网站制作推广系统优化的影响因素