Python高级教程 第9章:Python高级并发与多进程编程
来源:     阅读:2
易浩激活码
发布于 2025-11-23 20:22
查看主页

本章目标

本章将深入讲解 Python 的高级并发与多进程编程技术,协助你:


1. GIL 与 Python 并发模型


2. 多线程编程

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()

使用 ThreadPoolExecutor 简化

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)

3. 多进程编程

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()

使用进程池 Pool

from multiprocessing import Pool

def task(n):
    return n*n

if __name__ == '__main__':
    with Pool(4) as pool:
        print(pool.map(task, range(10)))

4. 进程间通信(IPC)

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()

5. asyncio 异步并发

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())

6. 并发性能分析与调优


7. 练习题

  1. 使用 ThreadPoolExecutor 实现并行下载器。
  2. 使用 multiprocessing 计算 1~1000000 的平方和。
  3. 使用 Queue 在进程间传递数据并统计结果。
  4. 用 asyncio 实现 100 个并发 HTTP 请求。

附图提议


小结

本章深入介绍了 Python 的高级并发与多进程编程,包括多线程、多进程、异步 I/O 与 IPC 技巧,掌握这些内容有助于编写高性能的并发程序。

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境
相关推荐
2025关于山东新泰市青云街道果园社区安置项目西地块土石方工程
web前台进阶之js设计模式篇——上
麦司机博客项目技术选型-Linux服务器
简单动态网站搭建
CEtoken钱包系统开发
首页
搜索
订单
购物车
我的