关于线程

关于C++线程

Green Threads

green threads 是相对于native threads而言的,实际的green threads是依赖于jvm或者其他实现的,不论有多少,系统都认为它只是一条native thread,不能同时调度到不同的cpu中进行处理,现实意义上讲不能实现真正意义上的并行,而后出现了1:1的线程模型,Green Thread的线程概念就逐渐淡出。


Fibers and Coroutine

纤程、微线程,就是轻量版的线程,如同线程对于进程而言。纤程的优点显而易见,无需线程的开销、上下文切换、变量加锁等,轻量使其比线程的更快更有优势,目前在lua和python均开始支持。
为了避免引入第三方的线程库,有些编程语言引入了协程——Coroutine的概念,在语法层面实现了纤程的功能。


Native Threads

Native Thread 就是我们一般意义上的线程概念,cpu的最小调度单元(green thread 与 fibers都是基于第三分库或者jvm实现的,底层依然是线程的实现)