我曾经面对下面的采访问题,下面的循环在单核和多核系统中的表现如何,这意味着它会影响单核,多核性能还是相同?
while (r < 1000000) { //assume r = 0 initially
t = r*r;
r++
}
答案 0 :(得分:5)
没有区别。单个线程始终在单个核心中运行。如果要使用多个核心,则应将作业分成几部分并在不同的线程中运行。
有关更多信息,请在线查看一些多线程编程示例/教程。
答案 1 :(得分:2)
由于您还没有发布完整代码,我假设您的循环在主线程中运行。因此,只有一个线程在特定时刻运行。你的循环在该线程中执行。
在多核系统中,它经常用于在不同的核心中运行并行线程或进程。由于您拥有单个线程,因此它将始终在单个内核中执行。没有任何时间差异。