1.线程
线程切换涉及到用户态和内核态的切换??
线程是OS底层的API,在创建线程与上下文切换过程中,会消耗较多的时间.
生活中常见的IO主要是网络和磁盘上面的,
2.协程
协程是编程语言级别的"线程",它的底层并不是线程,他不会告诉操作系统自己开辟了线程,所以它一直处于用户态,避免了用户态和内核态切换过程中的时间损耗.
操作系统对于线程开辟数量限制在千的级别,而协程可以达到上万的级别.