180113
io异步
之前提到过多线程和多进程的问题,实际上多线程和多进程是针对并发问题,只是解决io速度和cpu速度存在数量级差距的一个方法,io异步就是另一种解决问题的思路。
io异步的优势我认为有这么几个:1,多进程和线程之间的切换也要消耗资源;2,可能实际上并没有那么多的进程和线程可供切换。
实现io异步的叫做消息模型,原理是:通过不断的循环一个程序,监听消息。有消息则执行,并且忽略是否执行完直接进入下一次循环
180114
1 协程
一般的程序调用函数(子程序),使用栈结构。后调用的函数执行完,才能返回上一层执行之前一个函数。
协程区别于子程序,在执行A的过程中可以临时中断,然后直接去执行B。不同于多线程,协程全程只有一个线程,切换功能通过程序本身实现。因为只有一个线程,所以也就没有锁。
Python使用生成器来实现这种功能。大概过程是:一个函数调用一个生成器,之后开始执行生成器。
(此处保存了一个关于生成器和协程的文章,在收藏夹中)