
本章将深入讲解 Python 的高级并发与多进程编程技术,协助你:
import threading
def worker(n):
print(f'Worker {n} running')
threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
from concurrent.futures import ThreadPoolExecutor
def task(n):
return n * n
with ThreadPoolExecutor(max_workers=4) as ex:
results = list(ex.map(task, range(10)))
print(results)
from multiprocessing import Process
def worker(n):
print(f'Process {n}')
if __name__ == '__main__':
ps = []
for i in range(4):
p = Process(target=worker, args=(i,))
ps.append(p)
p.start()
for p in ps:
p.join()
from multiprocessing import Pool
def task(n):
return n*n
if __name__ == '__main__':
with Pool(4) as pool:
print(pool.map(task, range(10)))
from multiprocessing import Process, Queue
def worker(q):
q.put('data')
if __name__ == '__main__':
q = Queue()
p = Process(target=worker, args=(q,))
p.start()
print(q.get())
p.join()
import asyncio
async def job(n):
await asyncio.sleep(1)
print(f'Job {n}')
async def main():
tasks = [asyncio.create_task(job(i)) for i in range(5)]
await asyncio.gather(*tasks)
asyncio.run(main())
本章深入介绍了 Python 的高级并发与多进程编程,包括多线程、多进程、异步 I/O 与 IPC 技巧,掌握这些内容有助于编写高性能的并发程序。