一般情况并不需要协程。
只有异步IO时,将它表达为同步,才需要。
简单点,在线程池网络编程中,长时间的同步IO,占用线程时间太长,影响别的任务。在等待IO期间,释放线程,由一个协程等待IO。
对于单线程协程,可以理解为只有一个线程的线程池,如果需要处理很多的连接,协程是必须的。
看起来是一个read函数,返回时已经完成了IO,就是同步过程。其实中途线程跑掉了,干别的去了。
【 在 finlab 的大作中提到: 】
: 协程很多场合是为了节省线程切换的成本,提高cpu的利用率。
: 但是经常把一个事情劈成两半,绕了半天还是要再捏到一起。
: 既然协程这么流行,那就不如在cpu和操作系统、编译器层面进行优化,
: ...................
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*