多协程实例分析(一)
下面的代码中,我们实现了时间限制函数。即如果join的协程超过了之后就会自己弹出来。(并抛出错误来!)
这个错误也很有意思,那就是这个东西本身 Timeout
import gevent
import time
from gevent import monkey
from gevent import Timeout
monkey.patch_all(select=False)def foo(second):print('%d is begining'% second)time.sleep(second)print('%d is end' % second)def geventCreate(count, timeLimit):WaitList = []timeout = Timeout(timeLimit)for i in range(count):WaitList.append(gevent.spawn(foo, i+1))print("before Join!")timeout.start()try:gevent.joinall(WaitList)except Timeout:print("Time out!")if __name__ == '__main__':geventCreate(5, 4)
上面代码的输出是:
before Join!
1 is begining
2 is begining
3 is begining
4 is begining
5 is begining
1 is end
2 is end
3 is end
4 is end
Time out!
从开头的地方可以看出来跟线程还是有点区别的。这里可以看这篇文~
这次比较奇怪的地方是,这个是按照顺序进行的操作~
多协程实例分析(一)相关推荐
- Unity协程实现分析以及Lua协程与Unity协程的混合使用
1,节选翻译一篇stackoverflow关于Unity协程实现的讨论 - The big clues are in the C# version. Firstly, note that the re ...
- 多协程实例讲解(python 三)
还是讲解下这个官网上的代码吧 代码在这:(讲解在下面) import gevent from gevent.event import Event import time ''' Illustrates ...
- 多协程实例讲解(四 Python)
还是基于官方文档进行改写的结果 import gevent from gevent.event import AsyncResult a = AsyncResult()def setter():&qu ...
- 一文看透 Kotlin 协程本质
前言 公司开启新项目了,想着准备亮一手 Kotlin 协程应用到项目中去,之前有对 Kotlin 协程的知识进行一定量的学习,以为自己理解协程了,结果--实在拿不出手! 为了更好的加深记忆和理解,更全 ...
- 协程的原理及协程在高并发服务中的应用
协程的原理 协程(coroutine)跟具有操作系统概念的线程不一样,实际上协程就是类函数一样的程序组件,你可以在一个线程里面轻松创建数十万个协程,就像数十万次函数调用一样.只不过函数只有一个调用入口 ...
- 探索 Kotlin 协程原理
接下来跟大家分享一下我在了解 Kotlin 协程实现的过程中理解的一些概念,如果你发现哪些地方我说错了的话,欢迎提出你的理解. 1. Kotlin 协程原理概述 Kotlin 协程的大致的执行流程如上 ...
- 一文彻底搞懂协程(coroutine)是什么,值得收藏
什么是协程 我们可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的. 同时,协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系 ...
- python 多线程和协程结合_一文讲透 “进程、线程、协程”
本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同的应用场景该如何选择技术方案? ... 什么是进程 ...
- 什么是 “进程、线程、协程”?
作者 | 头文件 责编 | 王晓曼 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什 ...
最新文章
- DA14580开发血迹12--完整Profile解析(以心率服务为例)
- 解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)
- 29 SD配置-主数据-信用管理-分配订单类型的信贷控制
- link rel=canonical 用法
- PyTorch 1.0 中文官方教程:什么是 PyTorch
- 安装nvm nodejs npm webpack vue vue-cli
- 12. Copy all parts of an object
- php 字库,矢量字库的剪裁_php
- 基于pytorch+Resnet101加GPT搭建AI玩王者荣耀
- 计算机论文期中小结,毕业论文中期小结
- B站收藏 6.1w+!GitHub 标星 3.9k+!这门神课拯救了我薄弱的计算机基础
- 百度找不到服务器是怎么回事,百度搜索不能用了
- 然后删除oracle用户,oracle删除用户
- Zhong__Linux服务器word转PDF方案
- ejb2.1中ejbQL的缺点,权且作为笔记
- 企业档案管理实务:档案的检索方法知多少
- WebSphere 8.5.5 静默安装及升级补丁
- 【软件构造】java使用海龟绘图绘制黄金分割曲线
- c语言编写一个火车票,C语言-多线程抢火车票软件
- 第二章 Qt编程核心技术