Java与线程
2018-03-01 16:52
40 查看
线程实现
内核线程内核线程由操作系统调度需要进入内核态,程序一般不直接使用内核线程而是使用内核线程的高级接口——轻量级进程,也就是通常意义上说的线程,内核线程系统调度频繁,资源消耗较大。为1对1模型
用户线程
用户线程由进程独立调度,操作系统无法感知,实现比较复杂,但是资源消耗少。1对多模型
用户线程加轻量级进程混合实现
一个轻量级进程可以映射多个用户线程,集合内核线程和用户线程两者的优点,是m对n模型
Java线程实现
不同JVM实现不同,Sun JDK使用的是一对一模型
Java线程调度
java使用主流的抢占式线程调度,可设置线程优先级,但是线程优先级在某些情况下并不可靠,例如Windows系统下,如果线程特别“勤奋”,则Windows会越过线程优先级来分配执行时间状态转换
java线程有五种状态,任意时间点只有一个状态- 新建(New)尚未启动的线程
- 运行(Runable)操作系统中的Running和Ready
- 无限期等待(Waiting)需要其他线程唤醒,没设置TimeOut的wait()和没设置TimeOut的Thread.join()等
- 限期等待(Timed Waiting)一定时间后被系统自动唤醒,如Thread.sleep(),设置了TimeOut的wait()和Thread.join()等
- 阻塞状态(Blocked)线程获取不到排他锁而处于的状态,如synchronized
- 结束状态(Terminated)已经终止的线程状态
相关文章推荐
- Java中的简单的线程知识
- Java线程:线程的同步与锁
- Android的Java/C++线程进程
- 关于JAVA的线程问题
- Java创建线程的两种方法
- java并发包:线程复用之线程池
- Java 基本功 之中断线程的理解
- JAVA线程同步中wait()和notify()简洁例子
- 玩转java多线程学习篇三 线程的状态以及Thread类的API
- java生产消费线程小例子
- JAVA 并发编程随笔【七】线程安全与共享资源
- Java线程:线程的交互
- Java线程:概念与原理
- java 线程-生命周期-锁-阻塞-生成消费模式-安全容器
- java线程中的若干重要方法
- JAVA 并发编程随笔【七】线程安全与共享资源
- java并发-多线程之线程和进程的区别(1)
- java线程小结
- java线程同步之死锁
- 《JVM故障诊断指南》之3 —— Java 线程: JVM持有内存的分析