coroutine相关内容

coroutine - 关于python中的协程的变量问题

问 题 对于线程来说,可能会有线程安全的问题,比如 total = 0 def do_something(): global total # do something else total += 1 这个函数,对全局变量total自增,在多线程的情况下,运行十万次,最终total的结果可能不是100000 而对于单线程中的多个协程来说,可能会出现这种情 ..
发布时间:2017-09-06 05:10:31 Python

coroutine - Lua协程使用困惑求解

问 题 最近学习Lua的coroutine章节时,总对其使用场景及其意义不明白,自己也试着写了一些代码,但仍然没搞明白。 下面是我写的一段模拟下载网页的程序,使用协程和不使用协程耗时几乎相同,实在没能理解coroutine的非阻塞特性的价值。 -- 本例模拟耗时处理,如下载资源等,使用coroutine优化 local queue = {} function insert( ..
发布时间:2017-09-06 04:11:21 其他开发

格林莱特线程

我是gevents和greenlets的新手。我发现了一些关于如何使用greenlets的好的文档,但没有一个给我说明如何和何时使用greenlets的理由。 什么是 我不知道如果他们基本上是协同例程,他们如何能提供并发性。 解决方案 Greenlets提供并发,但不是 并行性。并发是指代码可以独立于其他代码运行。并行性是同时执行并发代码。当在用户空间中有很多工作要做时,并行性 ..
发布时间:2016-12-26 15:14:04 Python

在asio stackfull协程中直接使用spawn是安全的吗?

当我使用spawn在协程中启动一个新的stackfull协同程序时,valgrind说大量使用未初始化的值( valgrind输出)。 然后我使用io_service.post调用处理程序,并启动一个新的stackfull协同程序,每一件事情看起来很好。 p> 我已经搜索并读取了一些文档,但是找不到关于如何在stackfull协同程序中安全地创建一个新的stackfull协同程序的信息 ..
发布时间:2016-10-23 20:19:01 C/C++开发

安全跨平台协同

我遇到的所有协程实现都使用汇编或检查 jmp_buf 的内容。这个问题是它本质上不是跨平台。 我认为以下实现不会进入未定义的行为或依赖实现细节。但我从来没有遇到过这样的协程。 是否有一些固有的缺陷是使用线程跳转? 有一些隐藏getcha in this code? #include #include class Coro ..
发布时间:2016-10-23 14:43:16 C/C++开发

等效的C ++到Python生成器模式

我有一些示例Python代码,我需要在C ++中模仿。我不需要任何具体的解决方案(如基于协同程序的产出解决方案,虽然他们也是可以接受的答案),我只需要以某种方式重现语义。 Python 这是一个基本的序列生成器,显然太大,无法存储实体化版本。 def pair_sequence(): for i in range(2 ** 32): for j in range(2 ** ..
发布时间:2016-10-13 10:54:56 C/C++开发

如何停止合规?

当两人合作程序正在运行,你怎么停止第一次合作例行? GLOBALS.stableTime = 5 ; 的IEnumerator StableWaittingTime() { 收益回报新WaitForSeconds(1F); 如果(GLOBALS.stableTime == 0){ GameManager.instance.LevelFaildMethod(); }其他{ G ..
发布时间:2016-10-05 23:16:41 C#/.NET

2048游戏开发者是如何使他们的瓷砖,以平滑移动?看到下面的细节

我已经取得2048场比赛的完整副本,但我有瓷砖通过远距传物(砖不平整动如它是在原来的游戏) 我感动用下面的代码移动砖台的铣平。 //游戏管理脚本 无效MoveRight的(){ //一些代码.. AnimateTileMovement(在newPosition); //在newPosition到whihc瓷砖的位置会移动 //一些代码,我需要执行(仅在瓷砖我的完整运动) / ..
发布时间:2016-10-01 19:55:43 C#/.NET

在C#中的协同程序

我期待在C#的方式来实现协同例程(用户调度的线程)。当用c ++我用纤维。我在网上看到纤维在C#中不存在。我想获得类似的功能。 有没有“正确”的方式来实现在C#中的协同程序? 我也曾想过实施这个使用线程获取有关调度程序线程一个执行互斥+ 1,它释放此互斥每个协程。但这似乎非常昂贵的(它迫使每个协同程序之间的上下文切换) 我也看到了产量迭代器的功能,但据我所知,你不能在一个屈服内部 ..
发布时间:2016-09-22 19:29:58 C#/.NET

协程是在Unity3D一个新线程?

我感到困惑和好奇如何协同程序(在Unity3D也许是其他地方)的工作。协同程序是一个新的线程? Unity的文档他们说: 一个协同程序是可以暂停其执行(收益率),直到给定YieldInstruction完成的功能。 和他们有这里的C#示例 的: 使用UnityEngine; System.Collections中使用 ; 公共类例如:MonoBehaviour { 无效的s ..
发布时间:2016-09-18 13:03:28 C#/.NET

纤维在C#中:他们比快迭代器,并已使用的人呢?

所以我有一个关于纤维同事聊天并翻起从2003年本文,使用说明在C#中协同程序的实现光纤API。 收益本文是.NET 1.1,实施,因此早于收益回报率语法出现在.NET 2.0。 这肯定看起来,乍一看,这里的实现是可能更快,可以扩展到多个CPU的相当好。 有没有人用过吗? 解决方案 我没用过它,但我有这个问题的兴趣。这里有一个很好的实现协同程序在C#中使用循环调度程序: H ..
发布时间:2016-09-08 17:25:48 C#/.NET

它是安全的,直接在ASIO stackfull协程使用产卵?

当我用产卵开始在协程新stackfull协程,Valgrind的说了很多使用未初始化值( Valgrind的输出)。 然后我用io_service.post调用处理程序,并开始在一个新的stackfull协程,每一件事情似乎罚款。 我已经搜索并阅读一些文件,但无法找到一些关于如何在stackfull协程安全创建一个新的stackfull协程。 下面是code: 的#include<& ..
发布时间:2016-08-12 18:07:56 C/C++开发

提高:: ASIO ::产卵产量回调

我试图重写使用的boost ::支持ASIO ::产卵协同程序的项目。该项目的某些部分不能被改变。例如,存储协议库也被写入与的boost :: ASIO ,但没有协同程序。 问题是如何 yield_context 转换成普通回调(A 的boost ::功能对象或经典仿函数)。 这是我们所拥有的存储库API中: 无效async_request_data(uint64_t中ITEM_ID,提振: ..
发布时间:2016-08-12 17:53:06 C/C++开发

如何创建一个事件循环,直到永远运行某些协同程序?

为了从上下文切换prevent,我想创建一个大循环,以同时满足网络的连接和一些套路。 下面是用于正常功能的实现: 进口ASYNCIO 进口时间 DEF参考hello world(循环): 打印(“世界你好”) loop.call_later(1,参考hello world,循环)高清good_evening(循环): 打印(“晚上好”) loop.call_la ..
发布时间:2016-07-21 10:51:48 Python

结合龙卷风gen.coroutine和JOBLIB mem.cache装饰

想象一下,有一个功能,它可以处理一个繁重的计算工作,我们希望在龙卷风应用程序上下文异步执行。此外,我们想懒洋洋地评价功能,通过存储其结果到磁盘,而不是重新运行功能两次同样的论点。 没有缓存的结果(memoization的)人会做到以下几点: 高清complex_computation(参数): ... 返回结果@ gen.coroutine 高清complex_computat ..
发布时间:2016-07-21 10:37:28 其他开发