python生产者与消费者模型

# -*- coding:utf-8 -*-import threading
import random
import timegMoney = 1000
gLock = threading.Lock()
gTotalTimes = 10
gTime = 0
class Producer(threading.Thread):def run(self):global gMoneyglobal gTimewhile True:money = random.randint(100,1000)gLock.acquire()if gTime >= gTotalTimes:gLock.release()breakgMoney += moneyprint "%s生产了%d元钱,剩余%d元钱" % (threading.current_thread(),money,gMoney)gTime += 1gLock.release()time.sleep(0.5)class Consumer(threading.Thread):def run(self):global gMoneywhile True:money = random.randint(100,1000)gLock.acquire()if gMoney >= money:gMoney -= moneyprint "%s消费者,消费了%d元,还剩%d元" %(threading.current_thread(),money,gMoney)else:if gTime >= gTotalTimes:gLock.release()breakgLock.release()time.sleep(0.5)def main():for x in range(5):t = Producer(name="生产者线程%d" % x)t.start()for x in range(3):t = Consumer(name="消费者线程%d" % x)t.start()if __name__ == '__main__':main()#做个笔记    注意代码缩进。。。。。。

  

python队列

# -*- coding:utf-8 -*-import time
import Queue
import threading# q = Queue.Queue(4)# for x in range(4):
#     q.put(x)
# print q.qsize()  队列大小
# print q.full()  队列是否满
#
# for x in range(4):
#     print q.get()#q.get(block=True) #默认阻塞# q.put(block=True)def set_value(q):index = 0while True:q.put(index)index += 1time.sleep(3)def get_value(q):while True:print q.get()def main():q = Queue.Queue()t1 = threading.Thread(target=set_value,args=[q])t2 = threading.Thread(target=get_value,args=[q])t1.start()t2.start()if __name__ == '__main__':main()

  

转载于:https://www.cnblogs.com/xm17/p/9454141.html

学习python的一些脚本相关推荐

  1. python网络编程要学吗_总算发现如何学习python网络编程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  2. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  3. python写脚本入门-学习Python的教程?:python 脚本菜鸟教程

    学习Python的教程? Python作为一门面向对象的性语言,其实它的学习也很简单 - 配置 - Python基础(语法..数据类型.高级变量.函数.Python高级特性) - 面向对象编程.面向对 ...

  4. Python写阴阳师脚本带GUI又是一个学习小技巧

    Python写阴阳师脚本带GUI 需要用到环境 Python3. pycharm.天天模拟器.阴阳师. 准备库 pip install pyautogui pip install pywin32 需要 ...

  5. 7个最佳的学习Python编程的开源库

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|AI遇见机器学习 很多伙伴们在学习Python的过程中, ...

  6. python编程到底难不难_养成下面几个编程习惯,学习python并不难!

    大家好,我是咿哑呀.随着Python在国内的发展,特别是在自动化运维领域,运维开发者99%使用python开发自动化运维平台.使用python编程语言的公司会越来越多,那么在学习Python的过程中需 ...

  7. 为什么要学习Python编程语言?哪些人适合学习Python?

    先回答第一个被初学编程的朋友问到最多的问题,为什么要学习Python编程语言? 答:现在信息更新的非常快速,又迎来了大数据的时代, 各行各业如果不与时俱进,都将面临优胜劣汰,知识是不断的更新的,只有一 ...

  8. 零基础入门学习Python,我与python的第一次亲密接触后的感受!

    前言:Python是适合初学者入门最好的语言 Python适合初学者入门最好的语言 人工智能用Python?高考要加入Python?现在连微软官方Excel都要把Python作为官方语言!Python ...

  9. 【python教程入门学习】学习Python可以做什么

    学习Python可以做什么?梦雅老师微信762459510介绍,很多朋友都知道了Python是不错的编程语言,对于Python可以做的事情并不是很了解,对于零基础的朋友来讲,学习Python之后,待遇 ...

最新文章

  1. [开源] .Net ORM FreeSql 1.10.0 稳步向前
  2. 发光的二次元克拉克拉 满足年轻用户个性化、碎片化的文娱需求
  3. 详解数据存储的 6 种可选技术
  4. php ajax实现上移,jquery实现标签上移、下移、置顶_jquery
  5. linux内核程序运行在哪里,linux内核 – 设备驱动程序代码在哪里执行?内核空间还是用户空间?...
  6. LeetCode - Duplicate Emails
  7. aspnet mvc 中 跨域请求的处理方法
  8. CTR广告点击率预估
  9. Python引号的用法
  10. 【默认输入法】Android8.1默认输入法修改(解决输入法切换和权限获取等问题)
  11. kali虚拟机VMBox安装
  12. android抓取日志,Android抓取所有日志
  13. 从“黑五”看亚马逊海外购的变与不变
  14. TCP的三次握手和四次挥手
  15. 【推荐】推荐一个听音乐越,放松的小网站 音乐视频都不错
  16. Arithmetic Slices 算术序列
  17. 计算机中的数值和信息编码有哪些,[转载]信息编码 (数值型和字符型编码)...
  18. 解决 Nacos 服务注册使用 Docker 容器内网 ip 问题
  19. 使用husky配置git代码提交规范
  20. Android实现动态任意拖动图片

热门文章

  1. oracle将字符串转成数组_【算法打卡】上升下降字符串
  2. Java回调网址_极光短信- 回调接口 - 极光文档
  3. pycharm显示全部数据_必备 | 提升效率的数据分析工具,吴恩达都在用
  4. 软件交接需要交接哪些内容_从代理记账公司交接,需要交接哪些财务资料?
  5. 源码分析 Mybatis 的 foreach 为什么会出现性能问题
  6. 技术和商业的碰撞,谈阿里云与天猫双11这十年
  7. 凉凉了,Eureka 宣布闭源,Spring Cloud 何去何从? 1
  8. 【Android】实例 忐忑的精灵
  9. ylbtech-LanguageSamples-Indexers_2(索引器)
  10. css table布局大法,解决你大部分居中、多列等高、左右布局的问题