首页 > 代码库 > Python多进程
Python多进程
用win api写程序的时候,多进程的程序基本没写过,因为多线程已经能够满足大部分需要。
但是python的多线程有个问题,进程内的线程都是共享一个CPU核心的,类似于单线程的时间分片。以前写的时候记得这个问题处理起来难度还挺大,后来就没再搞了。
1 from multiprocessing import Process 2 import os 3 4 def run_proc (name): 5 print ‘Run child process is %s, pid = %d‘ % ( name, os.getpid() ) 6 7 if __name__ == ‘__main__‘: 8 print ‘Run Parent process pid is = %d‘ % os.getpid() 9 SecondProcess = Process ( target = run_proc, args = (‘test‘, ) )10 print ‘starting Second process‘11 SecondProcess.start()12 print ‘Child process end‘
参照廖雪峰上教程写的一个多进程程序,能同时运行2个进程,然后退出。
1 from multiprocessing import Process 2 import os 3 4 def run_proc (name): 5 print ‘Run child process is %s, pid = %d‘ % ( name, os.getpid() ) 6 val = 0; 7 while 1: 8 val += 1 9 10 if __name__ == ‘__main__‘:11 print ‘Run Parent process pid is = %d‘ % os.getpid()12 SecondProcess = Process ( target = run_proc, args = (‘test‘, ) )13 print ‘starting Second process‘14 SecondProcess.start()15 val = 0;16 while 1:17 val += 118 print ‘Child process end‘
然后在两个进程文件中添加死循环的代码,看下CPU的使用情况:
可以看到,同时运行的2个线程是分占处理器的,能够充分发挥硬件的性能。
Python多进程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。