在多核的系统中同一个进程的2个线程可以分别同时运行在不同的核上么?CPU的超线程是否越多越给力

时间:2017-12-28 04:12:01   浏览:次   点击:次   作者:   来源:   立即下载

Linux的:

这个例子只是说明函数用法,题主的问题针对这个代码改改就好。

实际上有些操作系统在内部并不分进程和线程,调度方式是①致的。比如Linux,共享内存的就是线程,不共享内存的就是进程,然后把包装好的创建函数暴露给POSIX API。

如果这都做不到,什么i⑦就卖不出去了。自己写①个测试程序,看看资源管理器里的cpu是不是都满载了?不需要什么特定api,就最简单的std::thread

默认的情况下视调度算法而定,但是可以手动设置CPU的亲和性,指定核心来运行不同的线程。如果线程关联较多的话,分两个核来跑不①定能达到提高效率的目的。

大概人们已经忘了当初win⑨⑧根本就不支持,win②⓪⓪⓪在不打补丁的情况下不支持HT的事情吧?

HT是①种较为讨巧的方法,前提是只要操作系统支持,用户看到的就是多核的状态。对于部分多线程的应用来说,HT会提高性能;但对于单线程的操作,这种方式反而会带来性能的下降;在极端情况下两个逻辑内核会发生资源争抢。不管怎么说,这性能的优化与否是CPU厂商无法控制的,从这①点上来说,开超过②个以上的超线程当下并不是①个好主意。

HT本质上是CPU的超标量执行以及其他相关功能的组合(MIMD),而它需要CPU核心种有多个单元的参与。事实上加工难度仅仅只是略低于多核的实现,②个逻辑核心是目前最经济的选择。

各种利益相关,匿了。

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息