我有几个小问题。
首先,多线程和多核之间有区别吗?它们是两个完全不同的东西,还是多线程在需要时使用多个内核?
其次,大多数内核都有两个线程,但在分析我的应用程序时,我注意到有很多不同的线程,从线程128到线程3460不等。是什么决定了你的计算机有多少线程?
谢谢
发布于 2012-08-07 04:04:05
在单核上进行线程通常意味着您可以创建x个线程,并且每个线程都会被赋予一定的运行时间(线程数量)。当线程被切换时,这就是所谓的上下文切换,所有这一切都需要一些时间,因此需要进行一些基准测试,以找到每个内核的理想线程数量。
如果大部分工作是受cpu限制的,那么产生数百个线程就没有什么意义了,因为这不太可能提高性能(事实上,也许更糟的是,记住上下文切换不是免费的)。但是,对I/O受限的工作执行此操作可能会有所帮助,因为当系统忙于执行此工作时,可以为另一个线程分配cpu时间。
拥有物理额外的核心意味着两件事可以在硬件级别上真正并行运行。
https://stackoverflow.com/questions/11835046
复制相似问题