位置: 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卸载没反应)

  • 华为调整音量必须用按键吗(华为音量怎么调节音量)

    华为调整音量必须用按键吗(华为音量怎么调节音量)

  • 华为Mate X2是什么时候发布的

    华为Mate X2是什么时候发布的

  • m1910f4e是什么型号(m1908f1xe是什么型号啥价位)

    m1910f4e是什么型号(m1908f1xe是什么型号啥价位)

  • 网络监测的方式(网络监测是什么样的工作)

    网络监测的方式(网络监测是什么样的工作)

  • 支付宝盒只能收支付宝不能用微信(支付宝盒收款不播报了怎么回事)

    支付宝盒只能收支付宝不能用微信(支付宝盒收款不播报了怎么回事)

  • 罗技k380无法连接win7(罗技k380无法连接手机)

    罗技k380无法连接win7(罗技k380无法连接手机)

  • 华为990处理器手机有几种型号(华为990处理器手机有几种型号价格)

    华为990处理器手机有几种型号(华为990处理器手机有几种型号价格)

  • 您的连接不是私密连接怎么解决(您的连接不是私密连接是怎么回事)

    您的连接不是私密连接怎么解决(您的连接不是私密连接是怎么回事)

  • intel i3 i5 i7区别(cpu i3 i5 i7哪个好)

    intel i3 i5 i7区别(cpu i3 i5 i7哪个好)

  • 一个手机号可以绑定两个抖音账号吗(一个手机号可以注册几个抖音号)

    一个手机号可以绑定两个抖音账号吗(一个手机号可以注册几个抖音号)

  • 打印机打的字模糊不清(打印机打的字模糊不清怎样办)

    打印机打的字模糊不清(打印机打的字模糊不清怎样办)

  • b站16岁能直播么(哔哩哔哩十六岁可以直播吗)

    b站16岁能直播么(哔哩哔哩十六岁可以直播吗)

  • vivoz5视频美颜怎么设置(vivo视频开美颜)

    vivoz5视频美颜怎么设置(vivo视频开美颜)

  • 电脑贴膜会不会有影响(电脑贴膜会不会影响保修)

    电脑贴膜会不会有影响(电脑贴膜会不会影响保修)

  • ipad突然键盘没了(ipad键盘不出来了)

    ipad突然键盘没了(ipad键盘不出来了)

  • 操作系统提供什么api(操作系统提供什么机制支持用户程序并发运行)

    操作系统提供什么api(操作系统提供什么机制支持用户程序并发运行)

  • 苹果11耳机插在哪里(苹果耳机插在电脑上没声音)

    苹果11耳机插在哪里(苹果耳机插在电脑上没声音)

  • 快手为什么分享不了微信朋友圈(快手为什么分享不出去)

    快手为什么分享不了微信朋友圈(快手为什么分享不出去)

  • 小米8屏幕指纹版和探索版区别(小米8屏幕指纹版是探索版吗)

    小米8屏幕指纹版和探索版区别(小米8屏幕指纹版是探索版吗)

  • 华为手机怎么取消系统更新(华为手机怎么取消纯净模式)

    华为手机怎么取消系统更新(华为手机怎么取消纯净模式)

  • 苹果xs max防水么(iphone xs max是否防水)

    苹果xs max防水么(iphone xs max是否防水)

  • Win10关闭客户体验改善计划(关闭客户端快捷键)

    Win10关闭客户体验改善计划(关闭客户端快捷键)

  • kentbcli.exe是什么进程 有什么用   kentbcli进程查询(kprcycleaner.exe是什么)

    kentbcli.exe是什么进程 有什么用 kentbcli进程查询(kprcycleaner.exe是什么)

  • 为你的WordPress添加图片替换功能 Enable Media Replace(wordpress!)

    为你的WordPress添加图片替换功能 Enable Media Replace(wordpress!)

  • 支付国外佣金代扣代缴增值税
  • 信息技术服务增值税
  • 货物已到发票未开具
  • 被投资方宣告发放股票股利
  • 个税换电脑了还能查到之前的申报记录吗?
  • 核算科目拨出专票怎么弄
  • 员工造成损失怎么处理
  • 年底没计提年终奖,下一年发放要怎么做
  • 外经证缴纳个税流程
  • 固定资产融资租赁账务处理
  • 员工的家庭
  • 开出密码区的普票能入账吗?
  • 超市购物卡开票可以做账吗
  • 收汇结汇的账务处理
  • 预付账款可以用应付账款借方
  • 如果没有预缴就开票会怎样?
  • 虚假会计凭证有哪些识别方法
  • 公司党支部的费用入账
  • 债券回购的含义和种类
  • 受托加工物资的账务处理例题
  • 股票投资报酬率怎么算excel
  • 怎么在电脑上设置输入法
  • 制药厂副产品
  • 长期待摊会计分录
  • sessmgr.exe - sessmgr是什么进程 有什么用
  • php字符串型数据的定义方式
  • 购入已提完折旧的固定资产怎么入账
  • PHP:pg_field_is_null()的用法_PostgreSQL函数
  • PHP:pcntl_wstopsig()的用法_PCNTL函数
  • 房地产佣金手续费财务处理
  • PHP:mcrypt_get_iv_size()的用法_Mcrypt函数
  • wordpress如何使用
  • 金阁寺屋顶
  • php常用语句
  • 增值税代扣代缴税率是多少
  • 确认收入需要哪些资料
  • 300秒带你手写一首诗
  • php 银行卡支付
  • 帝国cms目录
  • 施工水电费账务处理流程
  • 土地出让与土地划拨有什么区别
  • 反射怎么解释
  • http上传错误
  • mongodb怎么复制粘贴
  • 用vue做的企业项目
  • 无形资产减值准备可以转回吗
  • 小规模纳税人季度不超30万免增值税
  • 公司法人代表可以有几个
  • 收到的加盟费要交税吗
  • 购买员工团体意外险条款
  • 专票信息技术服务费
  • 人力资源外包服务包括哪些
  • 应收账款和预收账款都是企业的债权
  • 房地产企业抵押借款
  • 公司员工垫付款项
  • 出租车票没有发票怎么办
  • 总结sql执行进展怎么写
  • sql添加后返回主键
  • sql取汉字
  • win2000停止服务
  • linux中使用fdisk命令进行硬盘分区
  • solaris 11.4
  • smsmon32.exe - smsmon32是什么进程
  • win7共享文件权限设置
  • 无法登录所请求的数据库 用户sa登录失败
  • windows8使用技巧
  • window10显示重启提示
  • 使用jquery实现的项目
  • js获取当前日期并格式化
  • c++ 编程
  • android开发菜鸟教程
  • python怎么读取中文txt文本
  • js window.screen
  • Python Requests安装与简单运用
  • javascript模块化
  • 餐饮专票可以抵扣吗
  • 票种核定在电子税务哪里查
  • 土地增值税核定征收尾盘销售
  • 购旧设备增值税能不能抵扣
  • 天津市网签查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设