在多核的系统中同一个进程的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星
- 暂无评论信息
