Python并发编程挑战:多线程竞争资源示例

原创 偏执的太偏执、 2025-02-02 12:03 51阅读 0赞

在Python中,多线程主要通过threading模块实现。然而,由于全局解释器锁(GIL)的存在,Python的多线程并不能实现真正的并行计算,而是以线程为单位交替执行。

下面是一个简单的Python并发编程挑战,模拟多线程竞争资源:

  1. import threading
  2. # 资源类,这里我们用一个简单计数器
  3. resource = threading.Lock()
  4. def worker_thread(num):
  5. """工作线程"""
  6. with resource:
  7. # 竞争资源:增加计数器
  8. num += 1
  9. print(f"Thread {threading.current_thread().name}) Incremented: {num}")
  10. # 创建并启动工作线程
  11. threads = []
  12. for i in range(5):
  13. t = threading.Thread(target=worker_thread, args=(i,)))
  14. threads.append(t)
  15. t.start()
  16. # 等待所有线程完成
  17. for thread in threads:
  18. thread.join()

在这个例子中,我们创建了5个工作线程,每个线程都会竞争资源(这里是一个简单的计数器)并增加计数器的值。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,51人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java线资源竞争示例

    在Java多线程中,资源竞争是一个常见的问题。简单来说,就是多个线程同时争夺有限的资源,如果没有适当的同步机制,可能会导致数据不一致或者死锁等问题。 以下是一个经典的资源共享