多进程在osx和linux下输出不同
代码:
import multiprocessing
def func(i):
print multiprocessing.current_process().name + '-' + i
if __name__ == "__main__":
pool = multiprocessing.Pool(processes=10) # 创建4个进程
for i in xrange(10):
**pool.apply_async(func, (i, ))**
pool.close() # 关闭进程池,表示不能在往进程池中添加进程
pool.join() # 等待进程池中的所有进程执行完毕,必须在close()之后调用
print "Sub-process(es) done."
问题:
1:同样的程序在osx和linux下的输出为什么不一样?多进程从0到9,输出的i值应该是混乱的
对于osx 输出的i值是0-9有序,每次运行i值排序结果都一样,对于linux是乱序的,每次运行i值排序结果不一样,这是为什么呢?是因为osx和linux的系统的不同吗?
这取决于你的CPU核数,你的osx应该只有2核,你多运行几次就会发现不是次次一样