文章目录
- 一、java中的thread和操作系统中的Thread对应关系
- 二、协程
一、java中的thread和操作系统中的Thread对应关系
-
在java中用户线程和内核线程是1:1的形式:
其中java层面创建的线程为用户线程,其对应的底层线程为内核线程。 -
Java生成线程的流程如下:
- Java启动一个线程会调用本地方法:private native void start0()。
- start0方法触发JVM hotspot创建线程。
- JVM hotspot创建线程会调用linux内核的pthread_create方法。
-
Java操作对应的操作系统的线程状态:
二、协程
通过自主调度的方式来支持多线程并发。
不同语言协程的实现:
-
C++:
- 微软的Stackless模式。
- 腾讯微信团队:libco。
-
Java:
- JVM(Loom: fibers轻量级用户线程)。
- 基于JNI。
- 操控字节码:kilim。