专栏首页sktjpython 多线程 信号量semaphore(并行编程 5)

python 多线程 信号量semaphore(并行编程 5)

import threading import time import random

semaphore = threading.Semaphore(0)

def consumer(): print("consumer is waiting.") semaphore.acquire() print("Consumer notify: consumed item number %s." % item)

def producer(): global item time.sleep(10) item = random.randint(1, 1000) print("producer nofity: produced item number %s." % item) semaphore.release()

if name == "main":

for i in range(0, 5):
    t1 = threading.Thread(target=producer)
    t2 = threading.Thread(target=consumer)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
print("program teminated.")

threading.Semaphore(0)

se.acquire() se.release()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python3 网络爬虫 实例1

    pip install scrapy pip install pyOpenSSL pip install cryptography pip install...

    用户5760343
  • python 往ftp站点注入攻击

    import ftplib import optparse import time

    用户5760343
  • python 模拟syn攻击

    def synFlood(src, tgt): # TCP源端口不断自增一,而目标端口513不变 for sport in range(1024, 6553...

    用户5760343
  • 探索新零售时代背后的技术变革

    随着线下场景布局的不断发展,以及线上技术的持续推进,一个真正属于新零售的时代已经来临。

    个推君
  • Github界面简介

    Github网站上方,会有一个常驻工具栏,在首页和在仓库,工具栏会稍微有些许不同:

    王荣胜
  • 如何短时间内快速掌握数据可视化神器Power BI?

    作者 CDA 数据分析师 BI 其实是 Business Intelligence 的缩写,意思是商业智能。“Excel”是大多数业务人员必需熟练掌握的办公工...

    CDA数据分析师
  • 7个你需要知道的结对礼仪

    结对编程可能算是比测试驱动开发更具有争议的敏捷实践了,事实上,仅有很少的团队可以很好的实施它并从中受益,对于更多的团队来说,即使在践行敏捷的团队中,也常常会分为...

    ThoughtWorks
  • zookeeper常用指令

    可以看到,已经成功删除/zk-permanent 节点。值得注意的是, 若删除节点存在子节点,那么无法删除该节点,必须先删除子节点,再删除父节点。

    老梁
  • 7,一维Series

    pandas中常用的数据结构有: 1,Series:一维数组,有index。Series中只允许存储同种类型数据。 2,DataFrame:二维的表格型数据结...

    lyhue1991
  • SpringCloud分布式配置中心

    Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端...

    刘文正

扫码关注云+社区

领取腾讯云代金券