京东|说了半天线程,线程到底是怎么实现的呢?

京东|说了半天线程,线程到底是怎么实现的呢?

文章图片



用户级线程早起的操作系统(Unix) , 操作系统操作的还是进程 , 但是程序员在软件程序中使用线程的概念 。
许多编程语言都提供线程库 , 可以实现线程的创建、销毁、调度等功能 。
优点:操作系统内核看来、不存在线程;没有线程切换的开销
缺点:当一个用户级线程被阻塞 , 整个进程都被阻塞 , 并发度不高 。
内核级线程操作系统来实现管理
优点:分配资源有进程进行;当一个线程被阻塞后 , 别的线程还可以继续执行 , 并发能强 。 多线程可在多核处理机上并行执行 。
缺点:线程切换需要切换到核心态 , 管理成本高、开销大
知己知彼百战百胜 。
由此引出了综合的流程 。

合二为一的多线程模型一对一:
【京东|说了半天线程,线程到底是怎么实现的呢?】一个用户级的对应一个内核级线程
优点:一个线程被阻塞后 , 别的还可以
缺点:开销的问题
多对一:
多个用户级对应一个内核级;相当于退化成用户级线程
优点:效率高、不需要切换到和心态
缺点:还是阻塞的问题 。
多对多模型:
用户级的线程数量大于内核级线程 , 这样就减少了开销大的缺点 。


    推荐阅读