Python 多线程编程入门:threading模块详解

什么是多线程?

多线程是一种并发执行的方式,可以让程序同时执行多个任务,提高程序的效率。

基本使用

import threading
import time

def task(name, delay):
    print(f'任务{name}开始')
    time.sleep(delay)
    print(f'任务{name}完成')

# 创建线程
t1 = threading.Thread(target=task, args=('A', 2))
t2 = threading.Thread(target=task, args=('B', 1))

# 启动线程
t1.start()
t2.start()

# 等待完成
t1.join()
t2.join()

print('所有任务完成')

线程池

from concurrent.futures import ThreadPoolExecutor

def task(n):
    return n * n

with ThreadPoolExecutor(max_workers=5) as executor:
    results = list(executor.map(task, range(10)))

print(results)

共享数据与锁

import threading

counter = 0
lock = threading.Lock()

def increment():
    global counter
    for _ in range(100000):
        with lock:
            counter += 1

何时使用多线程?

场景 适用性
网络请求/IO操作 非常适合
文件读写 适合
CPU密集计算 不如多进程
简单并行任务 适合

注意

Python的GIL限制了多线程对CPU密集任务的加速。对于CPU密集任务,建议使用多进程(multiprocessing模块)。

总结

多线程是处理IO密集型任务的有力工具,合理使用能显著提升程序性能。