位置: IT常识 - 正文

Python如何进行线程切换(python绘制一条直线)

编辑:rootadmin

推荐整理分享Python如何进行线程切换(python绘制一条直线),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python线条,python绘制一条直线,用python画一条线,python直线,python画线段代码,python线条,python画线段代码,python线条,内容如对您有帮助,希望把文章链接给更多的朋友!

线程切换

条件对象能让一个线程 A 停下来,等待其他线程 B ,线程 B 满足了某个条件后通知(notify)线程 A 继续运行。线程首先获取一个条件变量锁,如果条件不足,则该线程等待(wait)并释放条件变量锁,如果满足就执行线程,也可以通知其他状态为 wait 的线程。其他处于 wait 状态的线程接到通知后会重新判断条件。

无论是多进程还是多线程,只要数量一多,效率肯定上不去,为什么呢?

Python如何进行线程切换(python绘制一条直线)

我们打个比方,假设你不幸正在准备中考,每天晚上需要做语文、数学、英语、物理、化学这5科的作业,每项作业耗时1小时。

如果你先花1小时做语文作业,做完了,再花1小时做数学作业,这样,依次全部做完,一共花5小时,这种方式称为单任务模型,或者批处理任务模型。

假设你打算切换到多任务模型,可以先做1分钟语文,再切换到数学作业,做1分钟,再切换到英语,以此类推,只要切换速度足够快,这种方式就和单核CPU执行多任务是一样的了,以幼儿园小朋友的眼光来看,你就正在同时写5科作业。

但是,切换作业是有代价的,比如从语文切到数学,要先收拾桌子上的语文书本、钢笔(这叫保存现场),然后,打开数学课本、找出圆规直尺(这叫准备新环境),才能开始做数学作业。操作系统在切换进程或者线程时也是一样的,它需要先保存当前执行的现场环境(CPU寄存器状态、内存页等),然后,把新任务的执行环境准备好(恢复上次的寄存器状态,切换内存页等),才能开始执行。这个切换过程虽然很快,但是也需要耗费时间。如果有几千个任务同时进行,操作系统可能就主要忙着切换任务,根本没有多少时间去执行任务了,这种情况最常见的就是硬盘狂响,点窗口无反应,系统处于假死状态。

所以,多任务一旦多到一个限度,就会消耗掉系统所有的资源,结果效率急剧下降,所有任务都做不好。

相关推荐:《Python视频教程》

下面为一个有趣的例子

importthreadingclassBoy(threading.Thread):def__init__(self,cond,name):super(Boy,self).__init__()self.cond=condself.name=namedefrun(self):self.cond.acquire()print(self.name+":嫁给我吧!?")self.cond.notify()#唤醒一个挂起的线程,让hanmeimei表态self.cond.wait()#释放内部所占用的琐,同时线程被挂起,直至接收到通知被唤醒或超时,等待hanmeimei回答print(self.name+":我单下跪,送上戒指!")self.cond.notify()self.cond.wait()print(self.name+":Li太太,你的选择太明治了。")self.cond.release()classGirl(threading.Thread):def__init__(self,cond,name):super(Girl,self).__init__()self.cond=condself.name=namedefrun(self):self.cond.acquire()self.cond.wait()#等待Lilei求婚print(self.name+":没有情调,不够浪漫,不答应")self.cond.notify()self.cond.wait()print(self.name+":好吧,答应你了")self.cond.notify()self.cond.release()cond=threading.Condition()boy=Boy(cond,"LiLei")girl=Girl(cond,"HanMeiMei")girl.start()boy.start()

运行结果如下:

LiLei:嫁给我吧!?HanMeiMei:没有情调,不够浪漫,不答应LiLei:我单下跪,送上戒指!HanMeiMei:好吧,答应你了LiLei:Li太太,你的选择太明治了。

相关推荐:

本文链接地址:https://www.jiuchutong.com/zhishi/304582.html 转载请保留说明!

上一篇:CSS中的三大特性(css 3有哪些新特性)

下一篇:ps卸载不干净无法安装(ps卸载没反应)

  • 苹果手机qq音乐自动续费怎么关闭(苹果手机qq音乐免费听歌模式在哪)

    苹果手机qq音乐自动续费怎么关闭(苹果手机qq音乐免费听歌模式在哪)

  • 快手推广合伙人怎么开通(怎么成为快手推广合伙人)

    快手推广合伙人怎么开通(怎么成为快手推广合伙人)

  • realme充电动画的设置方法(realmegt充电动画)

    realme充电动画的设置方法(realmegt充电动画)

  • 淘宝翻牌在哪里翻的(淘宝翻倍卡怎么使用)

    淘宝翻牌在哪里翻的(淘宝翻倍卡怎么使用)

  • 苹果手机电话怎么同步(苹果手机电话怎么录音)

    苹果手机电话怎么同步(苹果手机电话怎么录音)

  • 华为p40锁屏快捷键设置(华为p40锁屏快捷键怎么关)

    华为p40锁屏快捷键设置(华为p40锁屏快捷键怎么关)

  • 用集分宝买的东西退货集分宝会退回吗(用集分宝商家收到的是钱吗)

    用集分宝买的东西退货集分宝会退回吗(用集分宝商家收到的是钱吗)

  • iphone充电口有液体(iPhone充电口有液体怎么办)

    iphone充电口有液体(iPhone充电口有液体怎么办)

  • 被邀请共享相册自己的照片能被看到吗(被邀请共享相册拒绝了还会共享吗)

    被邀请共享相册自己的照片能被看到吗(被邀请共享相册拒绝了还会共享吗)

  • iphone7突然无服务(iphone7无缘无故无服务)

    iphone7突然无服务(iphone7无缘无故无服务)

  • 希捷酷鱼和酷狼区别(希捷酷鱼酷狼银河)

    希捷酷鱼和酷狼区别(希捷酷鱼酷狼银河)

  • 拼多多历史订单哪里看(拼多多历史订单找不到了怎么办呢)

    拼多多历史订单哪里看(拼多多历史订单找不到了怎么办呢)

  • 笔记本电脑和ipad有什么区别(笔记本电脑和ipad可以带上飞机吗)

    笔记本电脑和ipad有什么区别(笔记本电脑和ipad可以带上飞机吗)

  • 微信语音悬浮窗怎么隐藏(微信语音悬浮窗口找不到了)

    微信语音悬浮窗怎么隐藏(微信语音悬浮窗口找不到了)

  • iphonexr支持wifi6吗(IphoneXR支持两张电信卡吗)

    iphonexr支持wifi6吗(IphoneXR支持两张电信卡吗)

  • 苹果6显示无服务怎么回事(苹果6显示无服务他不是擦卡版的)

    苹果6显示无服务怎么回事(苹果6显示无服务他不是擦卡版的)

  • ipad air充不进电怎么回事(ipad air充电充不进)

    ipad air充不进电怎么回事(ipad air充电充不进)

  • ipad哪款支持电容笔(ipad支持什么充电协议)

    ipad哪款支持电容笔(ipad支持什么充电协议)

  • 多媒体处理的是什么信号(多媒体处理的关键技术)

    多媒体处理的是什么信号(多媒体处理的关键技术)

  • 荣耀v30支持多少倍变焦(荣耀V30支持多少W充电器)

    荣耀v30支持多少倍变焦(荣耀V30支持多少W充电器)

  • 美团如何开通溜溜住(美团哪里开通)

    美团如何开通溜溜住(美团哪里开通)

  • 华为手机预售版和标准版有什么区别(华为预售新款手机)

    华为手机预售版和标准版有什么区别(华为预售新款手机)

  • 爱追剧数据错误是怎么回事(爱追剧数据错误怎么办)

    爱追剧数据错误是怎么回事(爱追剧数据错误怎么办)

  • os x 10.10 yosemite自动纠正怎么关?os x yosemite自动纠正功能关闭教程

    os x 10.10 yosemite自动纠正怎么关?os x yosemite自动纠正功能关闭教程

  • vue项目:大屏自适应解决方案(两种)(vue 大屏可视化设计 开源)

    vue项目:大屏自适应解决方案(两种)(vue 大屏可视化设计 开源)

  • 锯齿国家森林里的海狸坝,爱达荷州 (© Charles Knowles/Alamy)(森林抗锯齿)

    锯齿国家森林里的海狸坝,爱达荷州 (© Charles Knowles/Alamy)(森林抗锯齿)

  • 2021年餐饮业的税率是多少?
  • 孳息和利息的区别
  • 发生了原材料运进和成品运出,但并未发生所有权
  • 销项税额和进项税额月底怎么结转
  • 房屋出租收到的租金会计分录
  • 进出口企业外汇收支平衡
  • 收到赞助商品的发票
  • 外贸企业出口货物
  • 税收主要分类方法
  • 递延收益没有应列入哪个科目
  • 购买的发票进项税和成本怎么转出
  • 购入材料过程中支付运费
  • 合伙企业转让股权需要其他股东同意吗
  • 经营性租赁购入会计分录
  • 购货方跨月进项税额转出分录
  • 税控专用发票和普通发票
  • 建筑业交税会计分录
  • 通行费发票如何开具
  • 营改增土地增值税的计算
  • 工商年检社保缴费基数按什么标准填
  • 物业公司小规模纳税人如何报税
  • 暖气冷气热水的增值税适用税率是多少?
  • 我们4月10日
  • 资本溢价公积金计算公式
  • 银行对账单不平衡
  • 发生的业务招待费属于什么科目
  • 电商平台收取的手续费
  • 哪些费用可以税前扣除
  • 建厂房的费用怎么记账
  • 公司商品房出售流程
  • 异地增值税预交可以网上缴纳吗
  • 咨询服务费怎么报印花税
  • win7如何禁用wifi
  • 抵扣农产品进项税时,也要抵扣运费吗
  • 技术股如何分红交易
  • laravel artisan命令
  • 残保金怎么核算
  • 广告代理费收取比例
  • 经营租入固定资产
  • cnn三层
  • 餐饮服务专票可以抵税吗
  • mysql日志记录
  • 印花税计税金额是主营业务收入吗
  • 个税 全年累计
  • sqlserversa用户登录失败
  • 金税四期何时上线
  • 可供出售金融资产是流动资产吗
  • 生育津贴和产假工资就高原则
  • 寄售商店代销寄售物品的税率
  • 调整凭证能不能做2个贷方
  • 销售折让的红字信息申请表怎么做
  • 企业过桥贷款违法吗
  • 一般来说,采取质押贷款方式
  • 疫情期间购买消毒弥雾机的请示
  • 税务销售滞后是什么意思
  • 支付给烟农的价格怎么算
  • 分公司利润如何纳税
  • 有进项无销项如何申报
  • solaris11下载
  • win帮助系统在哪里
  • cmos是一种什么芯片
  • ubuntu怎么添加一个新用户
  • centos 7.6安装教程
  • alp是什么文件
  • csinject.exe是什么程序的进程 csinject进程是安全的吗
  • windows8中“同步你的设置”使用介绍(让你的设置自动同步)
  • JavaScript:Array类型全面解析
  • node.js教程详细
  • shell脚本自动化
  • 基于jQuery实现Tabs选项卡自定义插件
  • unity一运行就停止工作
  • shell编程教程
  • js小数计算精度问题
  • javascript 基础篇3 类,回调函数,内置对象,事件处理
  • python socket server
  • js判断ua
  • 湖南国税电子税务局网
  • 免除滞纳金的条件
  • 黑龙江省税务培训网官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设