多线程编程:如何在Python中创建并管理多线程?
在Python中,由于GIL(全局解释器锁)的存在,直接进行多线程并不能充分利用多核CPU的优势。但是,Python提供了一些高级工具,如threading.Lock()
、queue.Queue()
等,可以间接实现多线程。
以下是一个简单的例子,展示了如何创建和管理Python多线程:
import threading
# 定义一个共享资源(锁)
lock = threading.Lock()
def worker_thread(name, lock):
print(f'Thread {name} started...')
# 使用锁确保互斥访问共享资源
with lock:
print(f'Thread {name} acquired lock...')
print(f'Thread {name} releasing lock...'))
print(f'Thread {name} finished...'))
# 创建多个工作线程
threads = []
for i in range(5):
thread_name = f'Thread-{i}'
thread = threading.Thread(target=worker_thread, args=(thread_name, lock)))
threads.append(thread)
thread.start()
# 等待所有工作线程完成
for thread in threads:
thread.join()
这段代码首先创建一个共享锁(lock
),然后为每个工作线程定义一个实现worker_thread
的函数。在工作线程启动时,它们会竞争获取锁,并执行自己的任务。
最后,我们创建了5个工作线程,并使用join()
方法等待所有线程完成。
还没有评论,来说两句吧...