码迷,mamicode.com
首页 > 编程语言 > 详细

Python多进程

时间:2017-06-10 18:16:31      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:分片   roc   int   com   运行   添加   win   rgs   start   

用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 += 1
18     print Child process end

然后在两个进程文件中添加死循环的代码,看下CPU的使用情况:

技术分享

可以看到,同时运行的2个线程是分占处理器的,能够充分发挥硬件的性能。

Python多进程

标签:分片   roc   int   com   运行   添加   win   rgs   start   

原文地址:http://www.cnblogs.com/matrix-r/p/6979356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!