后浪小萌新Python --- 多进程

tech2024-10-06  20

多进程

需要其他进程的时候就创建进程类Process的对象

注意:不能直接在一个进程中修改另外一个进程的数据

举例:

from multiprocessing import Process import time data = 10 def download(url): global data data -= 1 print(data) print(f'{url}开始下载') time.sleep(2) print(f'{url}下载结束') if __name__ == '__main__': p1 = Process(target=download, args=('沉默的羔羊',)) p2 = Process(target=download, args=('怦然心动',)) p1.start() p2.start() p1.join() p2.join() print('=========结束=======') print(data)

执行结果:

9 沉默的羔羊开始下载 9 怦然心动开始下载 沉默的羔羊下载结束 怦然心动下载结束 =========结束======= 10

进程间通信

支持多进程间通信的Queue

举例:

from multiprocessing import Process, Queue import time # 普通队列,可以支持多线程通信 def download(url, q: Queue): print(f'{url}开始下载') time.sleep(2) print(f'{url}下载结束') q.put(f'{url}电影资源') if __name__ == '__main__': q = Queue() p1 = Process(target=download, args=('沉默的羔羊', q)) p2 = Process(target=download, args=('怦然心动', q)) p1.start() p2.start() p1.join() p2.join() print('=========结束=======') print(q.get()) print(q.get())

执行结果:

沉默的羔羊开始下载 怦然心动开始下载 沉默的羔羊下载结束 怦然心动下载结束 =========结束======= 沉默的羔羊电影资源 怦然心动电影资源
最新回复(0)