Python threading和multiprocessing的核心区别在于:threading受GIL限制,无法实现CPU并行,适合I/O密集型任务;multiprocessing创建独立进程,绕开GIL,可利用多核实现真正并行,适合CPU密集型任务。1. threading共享内存、开销小,但GIL导致多线程不能并行执行Python代码;2. multiprocessing进程隔离、通信复杂、启动开销大,但能充分发挥多核性能。因此,I/O密集型任务应选择threading以高效切换等待,CPU密集型任务应选择multiprocessing以实现并行计算。

Python 的并发编程主要依赖两个核心模块:
threading
multiprocessing
threading
multiprocessing
要实现 Python 的并发,我们通常会从这两个模块入手。它们代表了两种不同的并发模型:线程(
threading
multiprocessing
先说说
threading
threading
import threading
import time
def task_io_bound(name):
print(f"线程 {name}: 开始执行 I/O 密集型任务...")
time.sleep(2) # 模拟 I/O 等待
print(f"线程 {name}: 任务完成。")
threads = []
for i in range(3):
thread = threading.Thread(target=task_io_bound, args=(f"T{i}",))
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
print("所有 I/O 密集型线程任务完成。")然后是
multiprocessing
Queue
Pipe
立即学习“Python免费学习笔记(深入)”;
import multiprocessing
import time
import os
def task_cpu_bound(name):
print(f"进程 {name} (PID: {os.getpid()}): 开始执行 CPU 密集型任务...")
result = 0
for _ in range(10_000_000): # 模拟 CPU 密集计算
result += 1
print(f"进程 {name} (PID: {os.getpid()}): 任务完成,结果 {result}。")
if __name__ == '__main__': # 确保在 Windows 上能正常运行
processes = []
for i in range(3):
process = multiprocessing.Process(target=task_cpu_bound, args=(f"P{i}",))
processes.append(process)
process.start()
for process in processes:
process.join()
print("所有 CPU 密集型进程任务完成。")选择哪种方式,说白了,就是看你的任务瓶颈在哪里。I/O 等待多,选
threading
multiprocessing
threading
multiprocessing
以上就是如何实现 Python 的并发编程?threading 与 multiprocessing的详细内容,更多请关注php中文网其它相关文章!
编程怎么学习?编程怎么入门?编程在哪学?编程怎么学才快?不用担心,这里为大家提供了编程速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号