Python并发编程挑战:多线程竞争资源示例
在Python中,多线程主要通过threading
模块实现。然而,由于全局解释器锁(GIL)的存在,Python的多线程并不能实现真正的并行计算,而是以线程为单位交替执行。
下面是一个简单的Python并发编程挑战,模拟多线程竞争资源:
import threading
# 资源类,这里我们用一个简单计数器
resource = threading.Lock()
def worker_thread(num):
"""工作线程"""
with resource:
# 竞争资源:增加计数器
num += 1
print(f"Thread {threading.current_thread().name}) Incremented: {num}")
# 创建并启动工作线程
threads = []
for i in range(5):
t = threading.Thread(target=worker_thread, args=(i,)))
threads.append(t)
t.start()
# 等待所有线程完成
for thread in threads:
thread.join()
在这个例子中,我们创建了5个工作线程,每个线程都会竞争资源(这里是一个简单的计数器)并增加计数器的值。
还没有评论,来说两句吧...