jjzjj

coroutine

全部标签

python 键入模块在 python 3.5 中缺少 Coroutine 类

我正在尝试编写使用Coroutine类的代码,如typingdocumentation中所述.看起来它在python3.5中可用,但是当我输入导入时它抛出一个ImportError:In[1]:fromtypingimportCoroutineImportError:cannotimportname'Coroutine'然后,我尝试在Python3.6中运行代码并且运行良好。此类在python3.5中不可用吗?如果不是,为什么它会出现在文档中(尤其是python3.5)?我尝试用python3.5.2运行它。 最佳答案 typing

Android Kotlin之Coroutine(协程)详解

协程是一种并发设计模式,您可以在Android平台上使用它来简化异步执行的代码。在Android上,协程有助于管理长时间运行的任务,如果管理不当,这些任务可能会阻塞主线程并导致应用无响应。协程的优点:轻量您可以在单个线程上运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。内存泄漏更少使用结构化并发机制在一个作用域内执行多项操作内置取消支持取消操作会自动在运行中的整个协程层次结构内传播。Jetpack集成许多Jetpack库都包含提供全面协程支持的扩展。ViewModel等还提供了协程作用域(比如,viewModelScope),用于结构化并发

python - 遍历 asyncio.coroutine

我最近一直在研究asyncio,虽然我开始对它的工作原理有了直觉,但有些事情我还做不到。我不确定这是因为我的构造有误,还是我尝试做的事情没有意义。简而言之,我希望能够迭代生成的asyncio.coroutine。例如,我希望能够执行以下操作:@asyncio.coroutinedefcountdown(n):whilen>0:yieldfromasyncio.sleep(1)n=n-1yieldn@asyncio.coroutinedefdo_work():fornincountdown(5):print(n)loop.run_until_complete(do_work())但是,这

python - asyncio 的 call_later raises 'generator' object is not callable with coroutine object

我有一些使用call_later使用Python3.4的asyncio制作的简单代码。代码应该打印,等待10秒,然后再次打印(但是在应该执行end()时引发TypeError,见下文):importasyncio@asyncio.coroutinedefbegin():print("Startingtowait.")asyncio.get_event_loop().call_later(10,end())@asyncio.coroutinedefend():print("completed")if__name__=="__main__":try:loop=asyncio.get_eve

Python 异步 : reader callback and coroutine communication

我正在尝试实现一个将数据从标准输入传递到协程的简单想法:importasyncioimportsysevent=asyncio.Event()defhandle_stdin():data=sys.stdin.readline()event.data=data#NOTE:dataassignedtotheeventobjectevent.set()@asyncio.coroutinedeftick():while1:print('Tick')yieldfromasyncio.sleep(1)ifevent.is_set():data=event.data#NOTE:datareadfro

Python生成器, 'coroutine'中的非吞咽异常

我最近在Python生成器中发现了一些令人惊讶的行为:classYieldOne:def__iter__(self):try:yield1except:print'*ExceptedSuccessfully*'#raiseforiinYieldOne():raiseException('testexception')给出输出:*ExceptedSuccessfully*Traceback(mostrecentcalllast):File"",line2,inException:testexception*ExceptedSuccessfully*被打印出来让我(高兴地)感到惊讶,因为这

http - 净/http : concurrency and message passing between coroutines

我在RESTAPI服务器上工作,该服务器的功能之一是能够在创建新资源或修改现有资源时通过websocket通知任意数量的客户端。我有一个自定义操作路由器,用于将URL绑定(bind)到函数和gorillas的websocket库实现。对于IPC,我决定依赖channel,因为它似乎是协程之间通信的惯用方式。它的行为也像一个管道,这是我熟悉的概念。Create函数的原型(prototype)如下所示:funcCreate(reshttp.ResponseWriter,req*http.Request,userdatainterface{})(int,string,interface{})

c++ - C++/gcc/linux 中的 Continuations/Coroutines/Generators

背景:我试图通过提出这个玩具问题来弄清楚如何实现延续/协程/生成器(不管下面的名称是什么)。环境是gcc4.6和linux3.0x86_64上的C++11。不可移植很好,但不允许使用外部库(boost.coroutine、COROUTINE等)。我认为longjmp(3)和/或makecontext(2)和friend可能会有所帮助但不确定。描述:下面的玩具解析器应该解析等长的as和bs序列。即((a+)(b+))+使得第二个括号产生式的长度等于第三个。当它找到一个产生式(例如aaabbb)时,它会输出它找到的a的数量(例如3)。代码:#include#includeusingname

kotlin - 在 Kotlin 中,术语 Coroutine 和 Continuation 有什么区别?

这两个术语似乎可以互换使用。然而,似乎也有一些差异,我正在努力解决。有区别吗? 最佳答案 确实,这两者关系密切。要恢复协程,您实际上调用continuation.resume()。每个协程都有其关联的延续对象。实际上,除了那个对象,你不需要其他任何东西,它包含协程的完整状态。在一定程度上,Kotlin使用“协程”还包括协程调度器,它让协程知道如何准确地挂起自己,挂起时在哪里保持延续,以及以后如何恢复(调度)它。但是你也可以使用Unconfined调度器,它几乎和没有调度器一样好,并且完全控制恢复,只保留延续对象:importkotl

android - java.lang.ClassNotFoundException : Didn't find class "kotlinx.coroutines.experimental.Deferred"

我在使用带有改造的协程时遇到了这个问题,你能告诉我为什么会出现这个错误java.lang.ClassNotFoundException:在路径上找不到类“kotlinx.coroutines.experimental.Deferred”:DexPathList[[zip文件“/data/app/com.coroutines.retrofit.kotlin-1/base.apk"],nativeLibraryDirectories=[/vendor/lib64,/system/lib64]]当我使用以下依赖项时,实现'com.jakewharton.retrofit:retrofit2-