multiprocessing模块,process模块
发布日期:2021-05-15 02:09:13 浏览次数:18 分类:博客文章

本文共 7842 字,大约阅读时间需要 26 分钟。

������multiprocessing������

���python������������������������������������������python���������multiprocessing���������

multiprocessing���������������������������������������������������������������������������������������������������������Process���Queue���Pipe���Lock������������

������������������������������������������������������������������������ ���������������������������������

������process������

process���������������������������������������������������������������������������������������������

���������������

Process���group=None, target=None, name=None, args=(), kwargs={}������1 group������������������������������������None2 target���������������������������������������������������������3 args������������������������������������������������args=(1,2,'egon',)4 kwargs���������������������������������,kwargs={'name':'egon','age':18}5 name���������������������������

���������������

1 obj.start()���������������������������������������������obj.run() 2 obj.run():���������������������������������������������������target���������������������������������������������������������������������  3 obj.terminate():������������������obj������������������������������������������obj���������������������������������������������������������������������������������������������������������������obj���������������������������������������������������������������������4 obj.is_alive():������obj���������������������True5 obj.join([timeout]):���������������obj������������������������������������������������������obj������������������������������timeout������������������������������������������������obj.join������join���start���������������������������join���run���������������

���������������

1 obj.daemon���������������False���������������True���������obj������������������������������������obj������������������������obj���������������������������������True������obj������������������������������������������obj.start()������������2 obj.name:���������������3 obj.pid������������pid4 obj.exitcode:���������������������None���������������N������������������N������(������������)5 obj.authkey:������������������������,������������os.urandom()���������������32���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

1������python������������������������

from multiprocessing import Processimport os���def func():    print('���������������������������>������������', os.getpid(), '  ���������������', os.getppid())������if __name__ == '__main__':    print('���������������������>������������', os.getpid(), '  ���������������pycharm������', os.getppid())    # ������������������������������    obj = Process(target=func)    obj.start()     # ���������������������    print('���������������������������������')���# ���������������������������>������������ 3100   ���������������pycharm������ 6748������������������������������������������������������������>������������ 2392   ��������������� 3100

2���������������������������

from multiprocessing import Processimport os������def func(name, age):    print('���������������������������>������������', os.getpid(), '  ���������������', os.getppid())    print(f'���������������������������>���������������{name}���������{age}')������if __name__ == '__main__':    print('���������������������>������������', os.getpid(), '  ���������������pycharm������', os.getppid())    # ������������������������������    obj = Process(target=func, args=('������', '18')) # args������������������������������func���������������������                               # kwargs������������������������������func������������������������                               # kwargs={'name': '������', 'age': 18}    obj.start()     # ���������������������    print('���������������������������������')    # ���������������������������>������������ 11936   ���������������pycharm������ 3676������������������������������������������������������������>������������ 2996   ��������������� 11936���������������������������>������������������������������18

3���������������������������

from multiprocessing import Processimport os������def func(name, age):    print(f'���������������������������>������������{os.getpid()},���������������{os.getppid()},���������������{name}���������{age}')������if __name__ == '__main__':    print('���������������������>������������', os.getpid(), '  ���������������pycharm������', os.getppid())    count = [('������', 18), ('������', 20), ('������', 55)]    for lis in count:        # ������������������������������        obj = Process(target=func, args=lis)   # args������������������������������func���������������������        obj.start()     # ���������������������    print('���������������������������������')    # ���������������������������>������������ 12632   ���������������pycharm������ 9220������������������������������������������������������������>������������10048,���������������12632,������������������������������18���������������������������>������������16032,���������������12632,������������������������������20���������������������������>������������12060,���������������12632,������������������������������55

4���join���������

obj.join([timeout]): ������������������������obj���������������������������������������������������������������obj������������������������������timeout������������������������������������������������obj.join������join���start���������������������������join���run���������������

������������������������������������������������������������������������������������������������

join������>���������������������

���������������A���������������������B���������������������B������������������������������A������

���������CPU���������������>input accept recv recvfrom sleep connect......

start������>������������������������

���������������A���������������������B���������������������B���������������������������A������

������������CPU���������������������������������I/O���

from multiprocessing import Processimport randomimport time������def mail(name, age):    count = random.random()    print(f'���{age}������{name}���������������������������{count}���')    time.sleep(count)      # ������������������    """    ������������������������������������������������������������������������������������������������    """������if __name__ == '__main__':    info_list = [('������', 18), ('������', 20), ('������', 55)]    jo = []    for info in info_list:        obj = Process(target=mail, args=info)        obj.start()        jo.append(obj)���    # ���������������������������������jo������������������join������������������������������������������������������������������    for o in jo:        o.join()���    # ���������������������������������    print('������������������')    # ���������20���������������������������������������0.19840279388911186������18���������������������������������������0.8891892863366903������55���������������������������������������0.0434307277609951���������������������

5���������������������������������������

from multiprocessing import Process���count = 1���def func():    global count    count += 1���if __name__ == '__main__':    for i in range(10):        obj = Process(target=func)        obj.start()    print(count)        # ������������>1 ������������count������������������������������������������������������    # ������1

6���������������Windows���Process������������������if __name__ == '__main__':���

������Windows������fork������������������������������������Python������������������������������

������������������������Process���������������������������������������������������������������������������������������

���������������Process���������������������������������if __name__ == '__main__':���������if���������������������������������������������������

上一篇:前端小白学习------css初级篇-css引入css基础选择器选择器权重
下一篇:socketserver实现并发,验证客户端的合法性

发表评论

最新留言

不错!
[***.144.177.141]2025年04月21日 10时57分31秒