摘要: 通过关键字yield,可以从生成器中产生值,并返回。我们可以将生成器作为一个生产者来使用。 在协程中,通过使用关键字yield,还可以让具有yield的程序接收值。此时函数作为消费者,消费我们传入(send)的值。 在协程中,可以把yield作为右值来用。在foo函数中,我们这样写: n = yie 阅读全文
posted @ 2017-12-31 23:24 geeklove 阅读(193) 评论(0) 推荐(0)
摘要: 同步与异步: 同步:发出一个调用,若没有得到结果,则调用不返回;若调用返回,那么一定得到结果了 异步:发出一个调用,立即返回,没有返回结果。当被调用者有结果了,再通过状态、通知来告诉调用者来获取结果 核心在消息通信机制。 一个典型的例子,异步IO: 将调用者视作主线程,通常情况下,主线程中会实现一个 阅读全文
posted @ 2017-12-31 16:08 geeklove 阅读(171) 评论(0) 推荐(0)
摘要: 在多线程中,对于共有的共享数据的操作,需要加锁。 但是,对于局部变量,则在每个线程之间相互独立。 假如线程T想要把函数F1中的局部变量V1传到函数F2中去,F2再想把这个变量传到F3中去,一层一层地传较为繁琐。 将Python的threading.local()返回的对象命名为tl,将tl放在全局的 阅读全文
posted @ 2017-12-31 14:32 geeklove 阅读(963) 评论(0) 推荐(0)
摘要: 因为进程是操作系统调度资源的基本单位,这里的资源当然包含了CPU寄存器资源,所以只有一个CPU的话,但是想要执行多任务, 只能让多个进程轮流占用CPU 真正的并行是CPU的数量和执行任务(进程)的数量相等。 在线程中,多个线程可能会共享同一个变量。 由于线程由操作系统调度,调度行为无法预知,所以存取 阅读全文
posted @ 2017-12-31 13:44 geeklove 阅读(147) 评论(0) 推荐(0)