对于并发要求比较法的I/O需求,可以用python的协程去处理。

重点:

1启动协程必须做一次函数调用

2协程激活只占用1kb内存,所以协程很多也问题不大

3这种效果需要使用关键字async和await

4协程和进程的区别在于:他不会从头到尾执行完,而是在遇到await表达式就暂停一次,下次继续执行的时候,他会等async操作有了结果,在推进下去

5python可以使用多async,让看起来像多线程并发(python由于GIL的原因其实不太支持做真正的并发)

import asyncio
async def print_num(num):
print("Maoli is printing " + str(num) + " nows" )
await asyncio.sleep(1)
print("Maoli prints" + str(num) + " OK")
async def main(nums):
for num in nums:
await print_num(num)
asyncio.run(main([i for i in range(1,6)]))
Maoli is printing 1 nows
Maoli prints1 OK
Maoli is printing 2 nows
Maoli prints2 OK
Maoli is printing 3 nows
Maoli prints3 OK
Maoli is printing 4 nows
Maoli prints4 OK
Maoli is printing 5 nows
Maoli prints5 OK

最新文章

  1. Linux安装Node.js
  2. Objective-C中的集合类
  3. BZOJ3331: [BeiJing2013]压力
  4. Angular-表单动态添加删除
  5. hadoop 多表join:Map side join及Reduce side join范例
  6. setContentView R can not be resovled
  7. exception 'DOMException' with message 'Invalid Character Error' Php + Mongodb
  8. spoj705 后缀数组求不同子串的个数
  9. R笔记1
  10. TFS 2013”无法移除仍为团队管理员身份的标识”
  11. Spring源码下载地址
  12. SQL 表值函数
  13. PHP 测试程序运行时间 microtime函数用法
  14. SQL Server 2008 数据库日志文件丢失处理方法
  15. -_-#【H5】meta / href
  16. 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
  17. 组合数处理(逆元求解)...Orz
  18. MySQL锁详解
  19. nginx允许IP访问不生效问题【原创】
  20. ldconfig 的简单用法

热门文章

  1. shell——trap捕捉信号(附信号表)
  2. 快速搭建springboot工程
  3. c语言数据结构,你可能还不知道的顺序表
  4. Solution -「GLR-R2」教材运送
  5. MySQL 利用frm文件和ibd文件恢复表结构和表数据
  6. 手撸一个springsecurity,了解一下security原理
  7. vue的父与子组件的访问
  8. 记一次 .NET 某供应链WEB网站 CPU 爆高事故分析
  9. jsp页面获取请求参数问题记录
  10. [LeetCode]1108. IP 地址无效化