下面的代码中,我们实现了时间限制函数。即如果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!

从开头的地方可以看出来跟线程还是有点区别的。这里可以看这篇文~

这次比较奇怪的地方是,这个是按照顺序进行的操作~

多协程实例分析(一)相关推荐

  1. Unity协程实现分析以及Lua协程与Unity协程的混合使用

    1,节选翻译一篇stackoverflow关于Unity协程实现的讨论 - The big clues are in the C# version. Firstly, note that the re ...

  2. 多协程实例讲解(python 三)

    还是讲解下这个官网上的代码吧 代码在这:(讲解在下面) import gevent from gevent.event import Event import time ''' Illustrates ...

  3. 多协程实例讲解(四 Python)

    还是基于官方文档进行改写的结果 import gevent from gevent.event import AsyncResult a = AsyncResult()def setter():&qu ...

  4. 一文看透 Kotlin 协程本质

    前言 公司开启新项目了,想着准备亮一手 Kotlin 协程应用到项目中去,之前有对 Kotlin 协程的知识进行一定量的学习,以为自己理解协程了,结果--实在拿不出手! 为了更好的加深记忆和理解,更全 ...

  5. 协程的原理及协程在高并发服务中的应用

    协程的原理 协程(coroutine)跟具有操作系统概念的线程不一样,实际上协程就是类函数一样的程序组件,你可以在一个线程里面轻松创建数十万个协程,就像数十万次函数调用一样.只不过函数只有一个调用入口 ...

  6. 探索 Kotlin 协程原理

    接下来跟大家分享一下我在了解 Kotlin 协程实现的过程中理解的一些概念,如果你发现哪些地方我说错了的话,欢迎提出你的理解. 1. Kotlin 协程原理概述 Kotlin 协程的大致的执行流程如上 ...

  7. 一文彻底搞懂协程(coroutine)是什么,值得收藏

    什么是协程 我们可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的. 同时,协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系 ...

  8. python 多线程和协程结合_一文讲透 “进程、线程、协程”

    本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同的应用场景该如何选择技术方案? ... 什么是进程 ...

  9. 什么是 “进程、线程、协程”?

    作者 | 头文件 责编 | 王晓曼 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什 ...

最新文章

  1. DA14580开发血迹12--完整Profile解析(以心率服务为例)
  2. 解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)
  3. 29 SD配置-主数据-信用管理-分配订单类型的信贷控制
  4. link rel=canonical 用法
  5. PyTorch 1.0 中文官方教程:什么是 PyTorch
  6. 安装nvm nodejs npm webpack vue vue-cli
  7. 12. Copy all parts of an object
  8. php 字库,矢量字库的剪裁_php
  9. 基于pytorch+Resnet101加GPT搭建AI玩王者荣耀
  10. 计算机论文期中小结,毕业论文中期小结
  11. B站收藏 6.1w+!GitHub 标星 3.9k+!这门神课拯救了我薄弱的计算机基础
  12. 百度找不到服务器是怎么回事,百度搜索不能用了
  13. 然后删除oracle用户,oracle删除用户
  14. Zhong__Linux服务器word转PDF方案
  15. ejb2.1中ejbQL的缺点,权且作为笔记
  16. 企业档案管理实务:档案的检索方法知多少
  17. WebSphere 8.5.5 静默安装及升级补丁
  18. 【软件构造】java使用海龟绘图绘制黄金分割曲线
  19. c语言编写一个火车票,C语言-多线程抢火车票软件
  20. 第二章 Qt编程核心技术

热门文章

  1. php url %,php常用的url处理函数集
  2. React Native升级目标SDK
  3. linux的~和/的区别
  4. 浏览器兼容--条件样式,选择符前缀,样式属性前缀
  5. Squid概述及相关配置说明
  6. 02NSString 转换 UTF8
  7. 将web项目deploy到tomcat的方法
  8. PMAboutView
  9. Web服务器启动端口冲突问题
  10. 第一章 OSI参考模型