Java线程
相关视频教程参考(来自动力节点):https://www.bilibili.com/video/BV1e64y197rh
相关资料下载:http://www.bjpowernode.com/?csdn
1、线程的实现
使用内核线程实现,直接由操作系统内核支持的线程,这种线程由内核完成切换。程序一般不会直接去使用内核线程,而是去使用内核线程的一种高级接口 —— 轻量级进程(LWP),轻量级进程就是我们通常意义上所讲的线程,每个轻量级进程都有一个内核级线程支持。
使用用户线程实现:广义上来说,只要不是内核线程就可以认为是用户线程,因此可以认为轻量级进程也属于用户线程。狭义上说是完全建立在用户空间的线程库上的并且内核系统不可感知的。
使用用户线程夹加轻量级进程混合实现
Java 线程实现:平台不同实现方式不同,可以认为是一条 Java 线程映射到一条轻量级进程。
2、Java线程调度
协同式线程调度:线程执行时间由线程自身控制,实现简单,切换线程自己可知,所以基本没有线程同步问题。坏处是执行时间不可控,容易阻塞。
抢占式线程调度:每个线程由系统来分配执行时间。
3、状态转换