假设我有一个4核CPU,我想在最短的时间内运行一些进程.这个过程理想上是可并行化的,所以我可以在无限数量的线程上运行它的块,每个线程花费相同的时间.
由于我有4个内核,我不希望通过运行比内核更多的线程来加速,因为单个内核只能在给定时刻运行单个线程.我对硬件知之甚少,所以这只是猜测.
在比线程更多的线程上运行可并行化的进程是否有好处?换句话说,如果我使用4000个线程而不是4个线程运行它,我的进程会更快,更慢,还是在大约相同的时间内完成?
我认为多核计算机的意义在于它可以同时运行多个线程.在这种情况下,如果你有一台四核机器,那么一次运行超过4个线程的重点是什么?难道他们不会只是在偷彼此的时间吗?
正如我已经读到的那样,对于多进程应用程序,单个CPU一次只能处理一个任务,在两个进程之间切换上下文.在多线程应用程序中,单个CPU可以处理多个线程.我不明白.如果只有一个CPU,CPU是否一次处理一个线程?如果是,如果CPU可以一次处理一件事,那么多线程应用程序与多进程应用程序的优势在哪里.