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

珠海建设网站首页2024年全员核酸

珠海建设网站首页,2024年全员核酸,天津高端网站建设案例,适合小白的室内设计软件队列#xff08;Queue#xff09; 在Python的queue模块中#xff0c;Queue类是一个线程安全的队列实现#xff0c;用于在多线程编程中安全地交换信息。它遵循先入先出#xff08;FIFO#xff09;的原则。Queue类提供了几种主要的方法#xff1a; put(item): 将一个项目…队列Queue 在Python的queue模块中Queue类是一个线程安全的队列实现用于在多线程编程中安全地交换信息。它遵循先入先出FIFO的原则。Queue类提供了几种主要的方法 put(item): 将一个项目放入队列中。如果队列已满则此方法将阻塞直到队列中有空间可用。get(): 从队列中移除并返回一个项目。如果队列为空则此方法将阻塞直到队列中有项目可用。task_done(): 表示之前入队的一个任务已经完成。通常由使用get()的消费者线程调用。每调用一次get()随后就应该调用一次task_done()来告诉队列该任务已处理完毕。join(): 阻塞调用线程直到队列中的所有项目都被处理并调用task_done()方法。这通常用于等待由队列消费的所有工作项完成。 并发编程中的线程 在Python中threading模块提供了基本的线程和锁支持。每个Thread对象代表了一个线程的执行。线程之间共享全局解释器锁GIL这意味着在任意时刻只有一个线程可以执行Python字节码。然而对于I/O密集型任务如文件读写、网络请求和等待密集型任务如数据库查询、外部API调用多线程仍然可以提高程序的总体性能因为线程在等待时可以释放GIL允许其他线程运行。 示例详解 下面是对之前示例的详细解释包括一些注意事项和潜在的改进点 import queue import threading import time import randomdef worker(q, job_type):while True: # 注意这里的无限循环需要外部机制来中断if job_type producer:item random.randint(1, 100)q.put(item)print(f{threading.current_thread().name} 生产了 {item})time.sleep(random.random()) # 模拟耗时操作elif job_type consumer:item q.get()print(f{threading.current_thread().name} 消费了 {item})time.sleep(random.random()) # 模拟耗时操作q.task_done() # 告诉队列这个任务已完成# 创建一个队列 q queue.Queue(maxsize10) # 可选地设置队列的最大大小# 创建并启动生产者线程 producers [threading.Thread(targetworker, args(q, producer), namef生产者-{i1}) for i in range(2)] for t in producers:t.daemon Truet.start()# 创建并启动消费者线程 consumers [threading.Thread(targetworker, args(q, consumer), namef消费者-{i1}) for i in range(3)] for t in consumers:t.daemon Truet.start()# 注意由于生产者线程是无限循环的下面的q.join()将永远不会返回 # 除非有某种机制来停止生产者线程例如使用共享变量或threading.Event # 为了示例的简洁性这里省略了停止生产者的代码# 假设我们在某个时刻决定停止所有线程 # 这可以通过设置共享变量或使用threading.Event来实现 # ...这里省略了停止线程的代码# 主线程通常不会在这里等待因为它会立即继续执行后面的代码 # 但为了示例的完整性我们在这里添加了一个简单的阻塞以便可以看到一些输出 try:while True:time.sleep(1) except KeyboardInterrupt:print(主线程被中断尝试优雅地关闭所有线程...)# 在这里添加关闭所有线程的代码如果有的话# 注意由于我们设置了daemonTrue主线程结束时守护线程也会自动结束# 但这通常不是优雅关闭线程的好方法注意事项 无限循环生产者线程中的无限循环需要外部机制来中断否则它们将永远运行下去。优雅关闭在实际应用中你需要实现一种机制来优雅地关闭线程比如使用共享变量、threading.Event或queue.Empty异常。GIL虽然Python的GIL限制了多线程在CPU密集型任务上的并行性但它对于I/O密集型任务和等待密集型任务仍然很有用。守护线程在这个示例中我们使用了
http://www.dnsts.com.cn/news/276985.html

相关文章:

  • 重点建设学科网站做网站时怎么选择数据库类型
  • 淮北网站网站建设html代码模板免费
  • 餐饮网站建设背景怎么弄一个网站
  • 西安做网站建设的网站制作公透明清晰
  • 广州公司网站设计制作手机上怎么支持wap网站
  • 企业网站网络营销案例分析什么网站可以做项目
  • 新郑建设局网站wordpress 3.4漏洞
  • 做外贸网站那家专业做产品目录设计用什么网站好
  • wordpress导出网站最近的军事新闻有哪些
  • php酒店网站源码新手如何做好网络营销推广
  • 做网站要自己租服务器吗怎么学好网站建设
  • 建设工程信息网为官方网站建站模板网站设计
  • 冬青街 做网站苍山县建设银行网站
  • 建设交易平台网站多少钱百度医生
  • python做网站好用吗网站的要求
  • 外贸网站建设长沙合肥seo推广公司哪家好
  • 哪些网站可以做房产推广网站建设情况说明总结
  • 永州网站制作wordpress加联系方式
  • 北京微信网站建设电话咨询北京首钢建设有限公司网站
  • 学生个人网站建设方案书框架栏目扫图片识别图片原图
  • 什么网站可以在线做高中题目苏州头条新闻
  • 徐州网站建设报价wordpress 透明背景
  • 乡镇中心小学校园网站建设指南一个备案号可以用几个网站
  • 网站风格指的是什么博客网站开发思维导图
  • 深圳建筑设计找工作哪个招聘网站临沂网站搜索排名
  • 网站建设部分费用会计科目24小时永久有效在线观看
  • 网站建设---部署与发布兴化市建设局网站
  • 广州市网站建设需要审批潜江网页
  • 什么网站可以免费做视频的软件下载浙江住房和城乡建设网
  • 兰州网站建设加王道下拉怎么做一元抢购网站