假设我有一台多芯笔记本电脑。
我用python编写了一些代码,并运行它;然后,当我的python代码运行时,我打开matlab并运行一些其他代码。
下面是怎么回事?这两个过程会被并行地使用多核自动处理吗?
或者计算机等待一个完成,然后处理另一个?
谢谢!
我指的两个程序在本质上可以被认为是最简单的程序,例如计算1+2+3.....+10000000
发布于 2016-12-11 18:40:28
答案是..。那得看情况!
您的操作系统经常切换正在运行的进程。总是有大量进程在后台运行--刷新屏幕、向扬声器发送声音、检查更新、轮询鼠标等等--这些进程只有在得到一定数量的处理器时间后才能实际执行。如果您有多个内核,操作系统将使用某种启发式方法来确定哪些进程应该在内核上得到一些时间。你有一种错觉,认为一切都在同一时间运行,因为(1)在某种意义上,事物同时运行是因为你有多个核,(2)切换发生得太快,以至于你无法注意到它的发生。
我提出这个问题的原因是,如果同时运行Python和MATLAB,原则上它们可以很容易地同时运行,这并不能保证会发生这种情况,因为您可能还会有大量其他事情发生。可能是Python和MATLAB同时运行了一段时间,然后两者都被暂时暂停,以允许某个正在播放音乐的程序将下一个声音剪辑加载到内存中,然后一个暂停,而某个内存中的OS页从磁盘接收,另一个则接管等等。
你能假设他们会并行运行吗?好的!最合理的OSes会找出这一点,并做正确的。你能假设它们完全是并行运行的,而没有其他东西是并行的吗?不一定。
https://stackoverflow.com/questions/41089356
复制相似问题