多线程与简单统筹学--Python语言描述
多线程与简单统筹学--Python语言描述
线程:一言以蔽之,就是代码在进程执行过程中的一条流程。(具体概念请读者自行查阅)
统筹学:研究如何在实现整体目标的全过程中施行统筹管理的有关理论、模型、方法和手段。换而言之,就是如何在一个可拆分的项目中,合理的分配和调度各个部分,从而节约成本(本文主要考虑时间成本)。
例子:生活中的统筹学--华罗庚
说明:这个例子中,将“泡茶”这一具体事件拆分为五个部分,各个部分存在相互依赖(如 洗开水壶与烧开水),当然也存在低耦合的情况(如 烧开水与洗茶杯),我们完全可以利用线程的优势来实现这一过程,相互依赖的部分使用全局变量进行通信,低耦合部分交由OS进行调度和协调。
代码:
#coding:utf-8
import threading
import time
BoilingWater = 0
Teapot_is_clean = 0
Kettle_is_clean = 0
Tea = 0
#烧开水
def getBoilingWater():global BoilingWaterwhile Kettle_is_clean==0:passtime.sleep(10)BoilingWater = 1#洗茶壶、茶杯
def clearTeapot():global Teapot_is_cleantime.sleep(2)Teapot_is_clean = 1#洗开水壶
def clearKettle():global Kettle_is_cleantime.sleep(1)Kettle_is_clean = 1#取茶叶
def getTea():global Teatime.sleep(1)Tea = 1#泡茶
def makeTea():while Tea==0 or Teapot_is_clean==0 or BoilingWater==0:passtime.sleep(1)print(time.time()-start)start = time.time()
threadList = []
threadList.append(threading.Thread(target=getBoilingWater))
threadList.append(threading.Thread(target=clearTeapot))
threadList.append(threading.Thread(target=clearKettle))
threadList.append(threading.Thread(target=getTea))
threadList.append(threading.Thread(target=makeTea))for t in threadList:t.start()
补充:
- 线程通讯:python 实现线程之间的通信
- 生活中的统筹学--华罗庚:https://wenku.baidu.com/view/ee111f265f0e7cd184253634.html
多线程与简单统筹学--Python语言描述相关推荐
- 大学python用什么教材-数据结构 Python语言描述 大学教材
书名:数据结构:Python语言描述 定价:69.8 ISBN:9787115485779 作者:张光河 版次:第1版 出版时间:2018-07 内容提要: Python是目前流行的程序设计语言,国内 ...
- python中栈的描述是_数据结构与算法:Python语言描述 栈和队列.ppt
数据结构与算法:Python语言描述 栈和队列 迷宫问题 迷宫问题的特点: 存在一集可能位置,一些位置相互连通,一步可达 一个位置可能连通若干位置,出现向前探查的多种可能(有分支) 目标是找到一条路径 ...
- 《数据结构与算法 Python语言描述》 读书笔记
已经发布博客 <数据结构与算法 Python语言描述> 读书笔记 第二章 抽象数据类型和Python类 2.1 抽象数据类型abstract data type:ADT 2.1.1 使用编 ...
- 资料分享:送你一本《数据结构与算法:Python语言描述》电子书!
下图为 TIOBE 3月编程语言排行榜. 从榜单来看,曾经铁打的 Java.C.C++ 局势,早已在数月前被 Python 的闯入而打破.究其根由,并非是 C++ 的应用领域正在逐渐缩减,而是随着人工 ...
- 《数据结构与算法:Python语言描述》一1.3算法和算法分析
本节书摘来自华章出版社<数据结构与算法:Python语言描述>一书中的第1章,第1.3节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.3算法 ...
- 数据结构python课后答案_数据结构与算法:Python语言描述 1~5章课后习题
数据结构与算法:Python语言描述 1~5章课后习题 发布时间:2018-07-19 20:42, 浏览次数:1885 , 标签: Python MarkDown语法写的,不知道为啥上传到CSDN不 ...
- 数据结构与算法python描述_数据结构与算法——Python语言描述.pdf
数据结构与算法--Python语言描述.pdf 欢迎加入非盈利Python编学习交流程QQ群783462347,群里免费提供500+本Python书籍! 欢迎加入非盈利Python编程学习交流程QQ群 ...
- 最简单的python语言实现汉诺塔游戏
最简单的python语言实现汉诺塔游戏 实现代码 def hanoi(n,ch1,ch2,ch3):if n==1:print(ch1, '->', ch3)else:hanoi(n - 1, ...
- python思想读后感_数据结构与算法:Python语言描述读后感1000字
<数据结构与算法:Python语言描述>是一本由裘宗燕著作,机械工业出版社出版的平装图书,本书定价:CNY 45.00,页数:343,特精心从网络上整理的一些读者的读后感,希望对大家能有帮 ...
最新文章
- 宁波城市职业技术学院Linux,宁波城市职业技术学院拟聘用人员公示
- 谈谈NTFS数据流文件
- matlab命名文件保存在哪里,用Matlab给整个文件夹下的文件分别重命名
- [C1W3] Neural Networks and Deep Learning - Shallow neural networks
- python34怎么安装_简明Python3教程 4.安装
- [Java网络编程基础]InetAddress的使用
- Windows phone7 开发-Zune software is not launched 【转】
- antd权限管理_Ant Design Pro开发后台管理系统(权限)-阿里云开发者社区
- android ListView中CheckBox错位的解决
- 灰色滤镜,网页灰色代码
- html增删改查按钮控件,HTML DOM节点的增删改查
- 网络协议 终章 - GTP 协议:复杂的移动网络
- Tomcat后台管理
- 2017-AHU校赛网络赛解题报告
- 技术小卡之Redis 管道技术
- airdrop搜不到对方_如何在Mac的Finder中将AirDrop添加到收藏夹侧边栏
- ES (ElasticSearch) 简易解读(一)为什么用它
- Java学习(二)---SE阶段回顾
- Java String 类和正则表达式
- python爬取淘宝商品做数据挖掘
热门文章
- Vue 电话号码344分割
- 二、Snapman多人协作电子表格之——软件下载安装与配置
- hpuoj 1715: 感恩节KK专场——2015年的第一场雪 (暴力)
- 脚印(Foot Print)效果制作
- 用户在电商网站中购买成功了,那么它在微服务中经历了什么(转)
- Spark:利用tac+cellid基站定位
- 「镁客·请讲」OracleChain老狼:EOS智能合约生态唯上,超级节点的竞争,不看吹牛先看做事...
- 亲爱的老狼-绝对路径、相对路径
- 求n的阶乘的算法框图_算法——递归问题
- [HNOI2005]狡猾的商人