在Windows中,如果一个线程正在执行非常耗费C++的操作,createThread()会导致一些线程变慢。createProcess()会缓解这个问题吗?如果是这样,createProcess()是否意味着代码必须驻留在第二个可执行文件中,或者这一切都可以发生在同一个可执行文件中?
发布于 2011-04-15 22:01:34
这会让事情变得更糟。当切换线程时,CPU只需要换出几个寄存器。因为一个进程的所有线程共享相同的内存,所以不需要刷新缓存。但在进程之间切换时,您也会切换映射内存。因此,CPU必须刷新L1缓存。那是痛苦的。
(L2缓存是物理映射的,即使用硬件地址。当然,这些是不会改变的。)
https://stackoverflow.com/questions/5677650
复制相似问题