在Python中,多线程编程通常用于执行I/O密集型任务,因为Python的全局解释器锁(GIL)限制了多线程在CPU密集型任务上的性能提升。不过,对于需要同时处理多个I/O操作(如网络请求、文件读写等)的场景,多线程仍然非常有用。
Python的 threading 模块提供了创建和管理线程的基本工具。以下是一个简单的示例,展示了如何使用threading模块来创建和启动多个线程:
import threading
import time
# 线程执行的函数
def worker(thread_id, delay):
print(f"线程 {thread_id} 开始工作,延迟 {delay} 秒")
time.sleep(delay)
print(f"线程 {thread_id} 完成工作")
# 创建线程列表
threads = []
# 启动多个线程
for i in range(5):
thread = threading.Thread(target=worker, args=(i, 2)) # 创建一个线程对象
threads.append(thread)
thread.start() # 启动线程
# 等待所有线程完成
for thread in threads:
thread.join()
print("所有线程已完成")
在这个示例中,我们定义了一个简单的worker函数,该函数接受线程ID和延迟时间作为参数,模拟线程的工作。然后,我们创建了5个线程,每个线程都会调用worker函数,并传入不同的参数。最后,我们使用join()方法等待所有线程完成。
线程同步
多线程编程中,线程同步是一个重要问题。如果不加以控制,多个线程可能会同时访问共享资源,导致数据竞争和不一致。Python的threading模块提供了多种同步机制,如锁(Lock)、信号量(Semaphore)、条件变量(Condition)等。
以下是一个使用锁的示例:<

最低0.47元/天 解锁文章
957

被折叠的 条评论
为什么被折叠?



