摘要: 协程:单线程下的并发。又称微线程。是用户态的轻量级线程,即协程是由用户程序自己控制调度的 要遇到IO才切。 比线程开销更小。 修改共享数据不用加锁 yield greenlet都无法做到遇到IO就切换 gevent 可以监控多个任务之间的IO,遇到IO切换到另一个任务。 yield: Greenle 阅读全文
posted @ 2018-06-17 15:02 beallaliu 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterable、Iterator与Generator之间的关系 一、语法糖的概念 “语法糖”,从字面上看应该是一种语法。“糖”,可以理解为简单、简洁。其实我们也已经意识到, 阅读全文
posted @ 2018-06-17 14:37 beallaliu 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 服务端: 阅读全文
posted @ 2018-06-17 14:18 beallaliu 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 提交任务的两种方式#1、同步调用:提交完任务后,就在原地等待任务执行完毕,拿到结果,再执行下一行代码,导致程序是串行执行 #2、异步调用:提交完任务后,不在原地等待任务执行完毕 同步调用: 运行结果: eggon 正在拉。。。。 eggon 拉了 5 kg! alex 正在拉。。。。 eggon 拉 阅读全文
posted @ 2018-06-17 11:49 beallaliu 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 服务器端: 客户端: 该种实现有什么弊端吗? 如果有10万个客户端,就得开10万个线程?单台服务器支撑得了不? 进程池或线程池实现并发: 运行结果: 0 pool__0 1 pool__1 2 pool__2 主线程。。。。。 3 pool__0 4 pool__1 5 pool__2 6 pool 阅读全文
posted @ 2018-06-17 11:10 beallaliu 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 回顾: 进程队列: from multiprocessing import Queue q = Queue(3) #先进先出,3是队列深度。 线程队列: import queue 先进先出 运行结果: 3 [1, 2, 3, 6] {'a': 1} 后进先出: 运行结果: {'a': 1} [1, 阅读全文
posted @ 2018-06-17 09:51 beallaliu 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 多少时间之后,触发什么事件 运行结果: %s xxxxxx %s xxxxxx %s xxxxxx %s xxxxxx %s xxxxxx # 每5秒执行一次 运行结果: 阅读全文
posted @ 2018-06-17 09:11 beallaliu 阅读(107) 评论(0) 推荐(0) 编辑
摘要: event=Event() event.isSet() # 返回event的状态值 True False event.wait() #等待其他线程发出event.set()后才继续往下执行 event.isSet() == False 将阻塞线程 event.wait(3) #如果超过3秒,即使没有 阅读全文
posted @ 2018-06-17 08:54 beallaliu 阅读(334) 评论(0) 推荐(0) 编辑