韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python高级 > Python中的多进程是什么

Python中的多进程是什么

头像

爱喝马黛茶的安东尼

2019-06-29 11:24:542685浏览 · 0收藏 · 0评论

多进程 multiprocessing

由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。

multiprocessing模块提供了一个Process类来代表一个进程对象。

Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。

子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。

Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程:

import os
print('Process (%s) start...' % os.getpid())
# Only works on Unix/Linux/Mac:
pid = os.fork()
if pid == 0:
    print('I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid()))
else:
    print('I (%s) just created a child process (%s).' % (os.getpid(), pid))

运行结果如下:

Process (69673) start ...
I (69673) just created a child Process(69674)
I am child proces (69674) and my parent is 69673.

有了fork调用,一个进程在接到新任务时就可以复制出一个子进程来处理新任务,常见的Apache服务器就是由父进程监听端口,每当有新的http请求时,就fork出子进程来处理新的http请求。

但是这个fork在windows操作系统是没有的。于是出现了处理fork的通用模块,以保证在不同操作系统间的调用。

multiprocessing模块就是跨平台版本的多进程模块。

multiprocessing模块提供了一个Process类来代表一个进程对象,下面的例子演示了启动一个子进程并等待其结束:

#!/usr/bin/env python
# coding=utf-8
from multiprocessing import Process
import os
"""
    子进程要执行的代码
"""
def run_proc(name):
    print('Run child process %s (%s)' % (name, os.getpid()))
if __name__ == '__main__':
    print('Parent process %s.' % os.getpid())
    p = Process(target=run_proc, args=('test_code',))
    print('Child process will start.')
    p.start()
    p.join()
    print('Child process end.')

执行结果如下:

$ python forkbymutilprocessing.py
Parent process 70227.
Child process will start.
Run child process test_code (70228)
Child process end.

创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动,这样创建进程比fork()还要简单。

join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

来真正的狗配人真人| 星空麻花MV高清| 黑丝| 《完美邻居2》电影在线观看| 娇瘾缠欢TXT小说| 半推半就干朋友老婆下一句怎么接| 美国式禁忌5老熟女| 同学的母亲中字ID| 巨茎挺进李淑芬的体内视频| 《暴力强伦轩》| 大肉大捧一进一出视频的注意事项| 日韩MM| 交换的温度2HD| 妈妈和两个姨妈一起过生日| 在线观看免费高清视频大全追剧| 三级《出差被同房》| 《再来一次好吗》免费观看| 丈夫不在家儿媳想老公的背景故事| 《甜蜜惩罚2》第二季的剧情 | 老人玩小处雌女视频的意义| 王娟被老赵一夜干4次| 《甜蜜惩罚2》第二季的剧情简介| 来吧儿子妈妈是纯还是混| 裸眼3D| 蜜桃成熟时李丽珍粤语原唱| 精品卡一卡二卡3卡高清乱码| 我把刘姨俩腿扛在肩上是哪一集的| 荒井小姐的秘密生活日剧免费观看| 《医务室上垒》动漫全集在线观看 | 芒果浏览器| 《朋友的妈妈2》中字头歌词| 丫头把腿开大让我添添| 里番| 33D蜜桃成熟| 黄瓜视频| 老公边日边叫我小骚B| 《厨房韵母2》免费观看完整版| 裸吻| 黄秋生失眠| F罩杯| 小妹妹爱大棒棒免费观看电视剧一