您的位置:首页 > 编程语言 > Python开发

Python多进程编程-开篇

2018-01-04 17:45 274 查看
多进程和多线程的区别:

Python在多线程编程上比较鸡肋。并发和性能比较差。

Python有一个全局解释锁(GIL)的存在,同一个时间点只允许一个线程在运行

想要同一时间点多个程序在cpu上运行,必须要用多进程编程了。

cpu密集型推荐使用多进程编程

IO密集型:比如程序要频繁地和数据库打交道,或者频繁地读写文件。使用多线程编程。

线程开销比进程开销小得多的原因:

进程所占用的内存空间

1.文本区域

2.数据区域

3.堆栈区域

新的进程重新创建三个区域

而新的线程可以复用进程的文本区域和数据区域

所以线程开销比进程开销小的多。

进程和进程之间是相互独立的,互不干涉。

实例代码:

import multiprocessing
count=0
def func1():
global count
count += 10
print count#10
if __name__ == '__main__':
plist=[]
for i in xrange(10):#创建了10个进程,每个进程创建一个自己的区域空间,copy了10份count=0的值,没有操作到主进程的count值
p=multiprocessing.Process(target=func1)
plist.append(p)
for p in plist:
p.start()
for p in plist:
p.join()
print count#0


执行结果:

10
10
10
10
10
10
10
10
10
10
0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: