当前位置: 首页 > news >正文

五金配件店 东莞网站建设工程与建设官网

五金配件店 东莞网站建设,工程与建设官网,百度搜索广告怎么收费,百度查询关键词排名工具python线程Barrier俗称障碍对象#xff0c;也称栅栏#xff0c;也叫屏障。一.线程障碍对象Barrier简介# 导入线程模块import threading# 障碍对象barrierbarrier threading.Barrier(parties, actionNone, timeoutNone)parties — 线程计数器#xff0c;记录线程数量#x…python线程Barrier俗称障碍对象也称栅栏也叫屏障。一.线程障碍对象Barrier简介# 导入线程模块import threading# 障碍对象barrierbarrier threading.Barrier(parties, actionNone, timeoutNone)parties — 线程计数器记录线程数量也称线程障碍数量action — 是一个可调用函数当等待的线程到达了线程障碍数量parties其中一个线程会首先调用action 对应函数之后再执行线程自己内部的代码timeout — 默认的超时时间二.线程障碍对象Barrier原理与之前介绍 互斥锁Lock/事件Event/定时器Timer等不同多线程Barrier会设置一个线程障碍数量parties如果等待的线程数量没有达到障碍数量parties所有线程会处于阻塞状态当等待的线程到达了这个数量就会唤醒所有的等待线程。可能说的有点抽象以播放器为例子首先一个线程做播放器初始化工作(加载本地文件或者获取播放地址)然后一个线程获取视频画面一个线程获取视频声音只有当初始化工作完毕视频画面获取完毕视频声音获取完毕播放器才会开始播放其中任意一个线程没有完成播放器会处于阻塞状态直到三个任务都完成三.多线程障碍对象Barrier相关函数介绍wait(timeoutNone) — 阻塞并尝试通过障碍如果等待的线程数量大于或者等于线程障碍数量parties则表示障碍通过执行action 对应函数并执行线程内部代码反之则继续等待如果wait(timeoutNone) 等待超时障碍将进入断开状态如果在线程等待期间障碍断开或重置此方法会引发BrokenBarrierError错误注意添加异常处理演示代码查看案例一reset() — 重置线程障碍数量返回默认的空状态即当前阻塞的线程重新来过如果在线程等待期间障碍断开或重置此方法会引发BrokenBarrierError错误注意添加异常处理演示代码查看案例二四.线程障碍对象Barrier使用1.案例一常规使用# !usr/bin/env python# -*- coding:utf-8 _*-Author:何以解忧Blog(个人博客地址): shuopython.comWeChat Official Account(微信公众号)猿说pythonGithub:www.github.comFile:python_arbrier.pyTime:2019/10/31 21:25Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累# 导入线程模块import threadingdef plyer_display():print(初始化通过完成音视频同步完成可以开始播放....)# 设置3个障碍对象barrier threading.Barrier(3, actionplyer_display, timeoutNone)def player_init(statu):print(statu)try:# 设置超时时间如果2秒内没有达到障碍线程数量# 会进入断开状态引发BrokenBarrierError错误barrier.wait(2)except Exception as e: # 断开状态引发BrokenBarrierError错误print(等待超时了... )else:print(xxxooooxxxxxooooxxxoooo)if __name__ __main__:statu_list [init ready,video ready,audio ready]thread_list list()for i in range(0,3):t threading.Thread(targetplayer_init,args(statu_list[i],))t.start()thread_list.append(t)for t in thread_list:t.join()输出结果init readyvideo readyaudio ready初始化通过完成音视频同步完成可以开始播放....xxxooooxxxxxooooxxxooooxxxooooxxxxxooooxxxooooxxxooooxxxxxooooxxxoooo注意如果barrier.wait(timeoutNone)等待超时会进入断开状态引发BrokenBarrierError错误为了程序的健壮性最好加上异常处理2.案例二重置线程障碍数量reset()# 导入线程模块import threadingdef plyer_display():print(初始化通过完成音视频同步完成可以开始播放....)# 设置3个障碍对象barrier threading.Barrier(3, actionplyer_display, timeoutNone)def player_init(statu):while True:print(statu)try:# 设置超时时间如果2秒内没有达到障碍线程数量# 会进入断开状态引发BrokenBarrierError错误barrier.wait(2)except Exception as e: # 断开状态引发BrokenBarrierError错误# print(断开状态... )continueelse:print(xxxooyyyxxxooyyyxxxooyyy)breakif __name__ __main__:statu_list [init ready,video ready,audio ready]thread_list list()for i in range(0,3):t threading.Thread(targetplayer_init,args(statu_list[i],))t.start()thread_list.append(t)if i 1: # 重置状态print(不想看爱情片我要看爱情动作片....)barrier.reset()for t in thread_list:t.join()输出结果init readyvideo ready不想看爱情片我要看爱情动作片....init readyvideo readyaudio ready初始化通过完成音视频同步完成可以开始播放....xxxooyyyxxxooyyyxxxooyyyxxxooyyyxxxooyyyxxxooyyyxxxooyyyxxxooyyyxxxooyyy注意如果barrier.wait(timeoutNone)等待超时会进入断开状态引发BrokenBarrierError错误为了程序的健壮性最好加上异常处理以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持聚米学院。
http://www.pierceye.com/news/530952/

相关文章:

  • 网站设计制作培训微信开放平台文档
  • 私人申请建设网站多少钱html如何建网站
  • 网站怎么在微博推广石家庄模板建站平台
  • 贵阳网站开发方舟网络wordpress静态化链接
  • 如何建设一个公司网站英文网站建设多少钱
  • 国外做水广告网站大全app开发公司查询
  • 苏州商城网站制作免费下载ppt模板的网站有哪些
  • 北京智能网站建设企业wordpress 找源码
  • 无锡网站维护公司wordpress 目录排序
  • 自己搭建的ftp怎么做网站装修公司展厅效果图
  • 做网站手机验证收费吗百度竞价推广是什么工作
  • 电商网站 案例熊掌号怎么域名做网站
  • 做网站怎么改关键词安卓开发软件工具
  • 做SEO公司多给网站wordpress 固定链接 无法访问
  • 潍坊百度网站优化网站建设相关文章
  • 做学术研究的网站怎样建设个人游戏网站
  • dede淘宝客网站网站页面优化简单吗
  • 长春做网站优化的公司赣州做网站公司哪家好
  • 网站开发宝典做网站属于软件开发吗
  • 网站建设要求 优帮云福州模板建站定制网站
  • wordpress本地更换为网站域名jsp网站开发书籍
  • 做一个网站的流程沧州网站建设
  • 山东省城乡住房建设厅网站住房建设部网站监理员
  • 怎么做百度网站验证保健品商城网站模板
  • 丹东市做网站广东做网站的公司
  • 网站收录大全销售推广
  • 网站发展历程东莞企业网站建设制作
  • 厦门市建设局查询保障摇号网站首页做房产网站长
  • 公司网站建设的普遍性长沙建站网
  • 东莞英文建站公司api模式网站开发