请教一个多进程编程的基础问题

netepic 2016-09-21 03:02:25

from multiprocessing import Process
import os


def run(name):
for i in range(1, 10):
print(os.getpid(), i, 'run')

if __name__ == '__main__':
p1 = Process(target=run, args=('test',))
p2 = Process(target=run, args=('test',))
print('Child process will start.')
p1.start()
p2.start()

执行的结果是:
Child process will start.
2772 1 run
2772 2 run
2772 3 run
2772 4 run
2772 5 run
2772 6 run
2772 7 run
2772 8 run
2772 9 run
8680 1 run
8680 2 run
8680 3 run
8680 4 run
8680 5 run
8680 6 run
8680 7 run
8680 8 run
8680 9 run

这完全是顺序执行啊,没有一点并发的感觉啊。请问我哪里写错了吗?
PS:可能会有人建议我把run函数中的循环次数调大一点,我试过即使调到10000,也一样是顺序执行。
...全文
349 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2016-09-28
  • 打赏
  • 举报
回复
现在的CPU太快了。 from multiprocessing import Process import os import time def run(name): for i in range(1, 10): print(os.getpid(), i, 'run') time.sleep(1) if __name__ == '__main__': p1 = Process(target=run, args=('test',)) p2 = Process(target=run, args=('test',)) print 'Child process wil start.' p1.start() p2.start() from multiprocessing import Process import os import time def run(name): for i in range(1, 10): print(os.getpid(), i, 'run') time.sleep(1 if name == 'test1' else 2) if __name__ == '__main__': p1 = Process(target=run, args=('test1',)) p2 = Process(target=run, args=('test2',)) print 'Child process wil start.' p1.start() p2.start()
Thomas_young2015 2016-09-21
  • 打赏
  • 举报
回复
from threading import Thread import os def run(name): for i in range(1, 10): print(os.getpid(), i, 'run') if __name__ == '__main__': thread = [] thread_count = 2 for i in range(thread_count): p = Thread(target=run, args=('test',)) thread.append(p) print('Child process will start.') for p in thread: p.start() ==================== RESTART: D:/python study/process.py ==================== Child process will start. 48764876 >>> 11 runrun 48764876 22 runrun 48764876 33 runrun 48764876 44 runrun 48764876 55 runrun 48764876 66 runrun 48764876 77 runrun 48764876 88 runrun 48764876 99 runrun
sprawling 2016-09-21
  • 打赏
  • 举报
回复
跟楼主的执行环境有关系,在交互环境里面执行就是顺序的,解释器里面就不一样了.

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧