from asyncio import Queue,sleep
import asyncio
from threading import Thread
import time qu=Queue()
#put async def putQ():
global qu
print('start put')
i=1
while True:
print('put sleep')
await sleep(1)
print('put sleep')
await qu.put(i)
if i<=20:
print('put',i)
else:
break
i+=1 #get
async def getQ():
global qu
while True:
await sleep(0.1)
if qu.qsize() != 0:
a= await qu.get()
print('get',a)
else:
print('no get') def start_loop(loop):
asyncio.set_event_loop(loop)
loop.run_forever() new_loop=asyncio.new_event_loop()
t=Thread(target=start_loop,args=(new_loop,))
t.start() # t1=asyncio.create_task(putQ()) taskput=asyncio.run_coroutine_threadsafe(putQ(),loop=new_loop)
taskget=asyncio.run_coroutine_threadsafe(getQ(),loop=new_loop) while True:
time.sleep(1)

 

from asyncio import Queue,sleep
import asyncio
from threading import Thread
import time qu=Queue()
#put async def putQ(qu):
print('start put')
i=1
while True:
print('put sleep')
await sleep(1)
print('put sleep')
await qu.put(i)
if i<=20:
print('put',i)
else:
break
i+=1 #get
async def getQ(qu):
while True:
await sleep(0.1)
if qu.qsize() != 0:
a= await qu.get()
print('get',a)
else:
print('no get') def start_loop(loop):
asyncio.set_event_loop(loop)
loop.run_forever() new_loop=asyncio.new_event_loop()
t=Thread(target=start_loop,args=(new_loop,))
t.start() # t1=asyncio.create_task(putQ()) taskput=asyncio.run_coroutine_threadsafe(putQ(qu),loop=new_loop)
taskget=asyncio.run_coroutine_threadsafe(getQ(qu),loop=new_loop) while True:
time.sleep(1)

  

 

asyncio queue的更多相关文章

  1. asyncio Queue的使用例子

    import aiohttp import asyncio import async_timeout from urllib.parse import urljoin, urldefrag root_ ...

  2. python中利用队列asyncio.Queue进行通讯详解

    python中利用队列asyncio.Queue进行通讯详解 本文主要给大家介绍了关于python用队列asyncio.Queue通讯的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细 ...

  3. python异步编程模块asyncio学习(二)

    尽管asyncio应用通常作为单线程运行,不过仍被构建为并发应用.由于I/O以及其他外部事件的延迟和中断,每个协程或任务可能按一种不可预知的顺序执行.为了支持安全的并发执行,asyncio包含了thr ...

  4. asyncio标准库7 Producer/consumer

    使用asyncio.Queue import asyncio import random async def produce(queue, n): for x in range(1, n + 1): ...

  5. 深入Asyncio(二)从线程到协程

    线程的真相 多线程并不是一无是处,在实际问题中,要权衡优劣势来选择多线程.多进程或是协程.协程为多线程的某些问题提供了一种解决方案,所以学习协程首先要对线程有一定了解. 多线程优点 代码可读性 多线程 ...

  6. 深入Asyncio(三)Asyncio初体验

    Asyncio初体验 Asyncio在Python中提供的API很复杂,其旨在替不同群体的人解决不同的问题,也正是由于这个原因,所以很难区分重点. 可以根据asyncio在Python中的特性,将其划 ...

  7. asyncio:python3未来并发编程主流、充满野心的模块

    介绍 asyncio是Python在3.5中正式引入的标准库,这是Python未来的并发编程的主流,非常重要的一个模块.有一个web框架叫sanic,就是基于asyncio,语法和flask类似,使用 ...

  8. Python之asyncio模块的使用

    asyncio模块作用:构建协程并发应用的工具 python并发的三大内置模块,简单认识: .multiprocessing:多进程并发处理 .threading模块:多线程并发处理 .asyncio ...

  9. asyncio异步模块的21个协程编写实例

    启动一个无返回值协程 通过async关键字定义一个协程 import sys import asyncio async def coroutine(): print('运行协程') if sys.ve ...

随机推荐

  1. k8s 容器的生命周期钩子

    钩子有两个一个容器起之前定义一个动作PostStart,容器关闭之前定义一个动作PreStop 动作可以是一个命令或http请求 示例 spec: containers: - lifecycle: p ...

  2. 《全栈性能Jmeter》-7JMeter常用脚本开发

  3. python regularexpress1

    //test.py 1 import re 2 3 print (re.search('www', 'www.myweb.com').span()) 4 print (re.search('com', ...

  4. iOS 新浪微博-5.1 首页微博列表_时间/配图

    在上一篇中,我们已经把首页微博显示出来了,但还有很多细节,需要我们去调整的.这一章中,我们将处理好时间,配图,工具框及转发微博等小细节的功能. 时间处理 第一步:定义一个时间的类别,用于判断是昨天.今 ...

  5. [Unit Test] Unit Test Brief Introduction

    Levels of Testing- Acceptance- Performance- Functional- Integration- Unit Why Unit Testing- Feedback ...

  6. linux常用系统工作命令

    1.echo命令 echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”. 2.date命令 date命令用于显示及设置系统的时间或日期,格式为“date [选项 ...

  7. wordpress学习(三)-----add_action动作钩子和add_filter()过滤器钩子

    <?php echo "<h2>高级教程add_action动作和add_filter()过滤器</h2><br/>"; //1.学会使用 ...

  8. Python全栈-day8-day9-函数1

    函数 day8 1.为什么需要函数 1)代码的组织结构不清晰,可读性差 2)需要重复使用某个功能时,需要重新编写成程序,重复率高 3)多处引用相同代码时,需要扩展功能的时候过于麻烦,工作量大 2.函数 ...

  9. sitecore系列教程之Sitecore个性化-体验概况概述

    SITECORE 8:体验概况概述 什么是体验简介? 体验配置文件是Sitecore中的仪表板应用程序,它说明了客户体验和交互的关键区域,例如访问者详细信息,访问,活动,目标,配置文件,自动化等等. ...

  10. HashSet, HashTable

    HashTable 存储键值对 , Hashtable和Dictionary<TKey,TValue>都是存键值对 HashSet 只存储值,盛放不同的数据,相同的数据只保留一份 Hash ...