#!/usr/bin/env python
# encoding: utf-8  
# Date: 2018/6/19

# # from gevent import monkey  # 这俩行必须放在首行,下面就可以使用time(非gevent)的io
# # monkey.patch_all()  # 相当于把所有的io操作打了标记,把io阻塞操作变成了非阻塞操作
# # gevent遇到io都可以自动切换
# import gevent
# import time
#
#
# def eat(name):
#     print('%s eat 1' % name)
#     gevent.sleep(3)  # 相当于io操作
#     # time.sleep(3)  # gevent不识别,只是别自己的io
#     print('%s eat 2' % name)
#
#
# def play(name):
#     print('%s play 1' % name)
#     gevent.sleep(4)
#     print('%s play 2' % name)
#
#
# start_time = time.time()
# g1 = gevent.spawn(eat, 'egon')  # 提交任务是异步提交
# g2 = gevent.spawn(play, 'alex')
#
# g1.join()
# g2.join()
# stop_time = time.time()
# print(stop_time - start_time)  # 4.005170583724976

# gevent 异步提交任务
from gevent import monkey;monkey.patch_all()  # 必须在首行
import gevent
import time

def eat(name):
    print('%s eat 1' % name)
    time.sleep(3)
    print('%s eat 2' % name)

def play(name):
    print('%s play 1' % name)
    time.sleep(4)
    print('%s play 2' % name)

g1 = gevent.spawn(eat, 'egon')  # 提交任务是异步提交
g2 = gevent.spawn(play, 'alex')

# time.sleep(5)  # 保证线程在5秒内可以执行完
# g1.join()  # 同上一行代码,不用考虑时间
# g2.join()

# 终极
gevent.joinall([g1, g2])

最新文章

  1. tp框架验证信息
  2. 【javascript】作用域和闭包浅析
  3. Findbugs介绍及使用方法
  4. linux 安装jdk,tomcat 配置vsftp 远程连接
  5. python在线文档
  6. VC++NMAKE
  7. C API 连接MYSQL
  8. JQuery ajax请求一直返回Error(parsererror)
  9. 使用JavaMail发送邮件和接受邮件
  10. 《Android群英传》读书笔记 (2) 第三章 控件架构与自定义控件详解 + 第四章 ListView使用技巧 + 第五章 Scroll分析
  11. XML DOM 总结一
  12. 512M内存机器如何用好Mysql
  13. linux select 网络模型
  14. Java之IO转换流
  15. Redis--Latest Windows Version
  16. FreeSql 过滤器使用介绍
  17. 交叉编译bash
  18. X的平方
  19. http 状态码 码表
  20. Java设计模式----初识适配器模式

热门文章

  1. 离线安装Chrome扩展和App
  2. AI实现五子棋机器人(一)
  3. Node.js权威指南学习记录
  4. oracle 常用的系统表查询
  5. Hibernate中Hql查询
  6. Http请求get和post调用
  7. UI-定时器与动画使用总结
  8. js控制iframe的刷新(页面局部刷新)
  9. Java [Leetcode 347]Top K Frequent Elements
  10. asp.net core microservices 架构之eureka服务发现