关于完成端口说明中一句话不理解

cgp7953476 2006-08-08 10:10:30
线程数量取决于应用程序的特定需要。理想的情况是,线程数量等于处理器的数量,不过这也要求任何线程都不应该执行诸如同步读写、等待事件通知等阻塞型的操作,以免线程阻塞

上面的"线程数量等于处理器的数量",一般处理器不都是一颗,最多两颗,那就是说只创建一个到两个线程,那怎么够用呢?
...全文
216 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2006-08-08
  • 打赏
  • 举报
回复
正如楼上所说,这里通常情况指的是并发的线程数量,所谓并且就是并行运算,假设CPU比作独木桥的话,那么多座独木桥就可以同时有多个人同一时间并行。但是对于支持HT(超线程)技术的CPU,则同一颗CPU同时支持多个线程并行运算(通常是两个线程),多核CPU在线程的并行运算里可以当作为多CPU。由在处理过程当中数据总是需要与外设打交道(即I/O)的,而外设的访问速度相对CPU内部的执行来说会相对慢一些,甚至慢得多,此时就会存在一个与外设的同步等待过程,此这个间隙时间CPU是空闲的,如果单让一个线程执行,则这个间隙将成为一种不必要的资源浪费,所以通常建议开的线程是CPU数量*2,而实际测试过程当中为了抢得更多的CPU资源,通常又建议线程数量为CPU数量*2+2,这同样也是为了更好的利用CPU资源。
louifox 2006-08-08
  • 打赏
  • 举报
回复
应该是并发线程的数量等于处理器的数量,实际创建的线程一般大于这个数

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧