常用算法 25 讲
胡光
前百度高级算法研发工程师,ACM 国际大学生程序设计大赛亚洲区金牌获得者
40774 人已学习
赠一得一
登录后,你可以任选4讲全文学习
课程目录
已完结/共 31 讲
结束语 (1讲)
常用算法 25 讲
15
15
1.0x
00:00/00:00
登录|注册

06 | 线程池基础:如何用线程池设计出更“优美”的代码?

线程池在工作非常有用,但你了解线程池吗?要了解线程池,必须要了解什么是线程和进程,以及其中与编程范式相关的思维模式。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该试读文章来自《常用算法 25 讲》,如需阅读全部文章,
请先通过赠一得一解锁课程
赠一得一
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 不知火
    课后思考题,我的想法是 先筛出1万以内的素数 然后把1万-1亿的数分为n分,用线程池初始化n份数组 然后初始化任务结束后告知主线程,主线程用1万以内的素数去筛这些数 最后累加各个区间的素数个数

    作者回复: yes~~~~~d(^_^o)

    2
    13
  • 我来也
    由于线程是共享了cpu的计算资源,所以线程也不是越多越好,否则会有频繁切换导致的软中断过高的问题。 课后思考题 如何不用各种奇技淫巧,只是傻算的话,想到两种搞法。 1。分段来做, 但是当数比较小时,判断是否是素数比较快。 所以不能简单的分成cpu的核数。 可以分成N*CPU核数。 然后一份一份的算。 2。筛子算法 好像是golang介绍协程时这么搞过。 多个协程互相合作。 可以转成类似的线程来做。

    作者回复: d(^_^o)

    6
  • Geek_c37e49
    多个线程并行计算,每个线程计算其中一部分,最后合并,由线程池管理这些线程
    9
  • bill
    终于理解了进程是资源分配的最基本单元,但线程为什么就是调度的最基本单元,因为一个线程对应了一个CPU时间片
    归属地:广东
  • 速水御舟
    这次彻底知道了为什么要用线程池的根本原因了 感谢
  • Jeffery_Yu
    文章写的很好懂呀,很棒!
  • A_阿海
    学习了。温故知新
  • “线程是操作系统进行计算调度的最基本单元,进程是操作系统进行资源分配的最基本单元。”线程的数量要合理,不要追求多,CPU资源有线,过多的线程会导致CPU频道的切换。
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部