多进程的锁
lock.acquire() lock.release()
使用进程池
p=Pool(4)
p.appy() 同步调用 poll.apply_async() 异步执行
协程
协同多任务
在一个进程或者一个线程中执行
不需要锁机制
对多 核CPU的利用---结合多进程
协程的实现
使用生成器yield来实现
def count_down(n):
while n>0:
yield n
n-=1
def yield_test():
while True:
n=(yield )
print(n)
3.5以后使用async关键词
定义特殊函数
当被调用时,不执行里面的代码,而是返回一个协程对象
在事件循环中调度其执行前,协程对象不执行任何操作
await关键词
等待协程执行完成
当遇到阻塞调用的函数的时候,使用await方法将协程的控制权让出,以便loop调用其他的协程
asyncio模块
get_event_loop()获取事件循环队列
run_untill_complete()注册任务到队列
在事件循环中调度其执行前,协程对象不执行任何操作
asyncio模块用于事件循环
协程之间的数据通讯
嵌套调用