
本文共 7842 字,大约阅读时间需要 26 分钟。
���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__':
发表评论
最新留言
关于作者
