线程的调度
来源:互联网 发布:北京赛车两期计划数据 编辑:程序博客网 时间:2024/06/07 02:43
Java虚拟机会按照特定的机制为程序中每个线程分配CPU的使用权,这种机制被称为线程的调度。
线程的调度有两种模型:分时调度模型和抢占式调度模型。
分时调度模型是指让所有的线程轮流获得cpu的使用权,并且平均分配每个线程占用的CPU的时间片。
抢占式调度模型是指优先让可运行池中优先级高的线程占用CPU,如果可运行池中的线程优先级相同,那么就随机选择一个线程,使其占用CPU。
线程的优先级
0到10整数表示优先级。0最低,10最高。(UNIX刚好相反)。其中 public static final int MIN_PRIORITY = 1;
public static final int NORM_PRIORITY = 5;
public static final int MAX_PRIORITY = 10;
线程优先级可以用 setPriority(int newPriority)来改变。
线程的休眠
public static void sleep(longmillis) throws InterruptedException
public static void sleep(long millis,int nanos)throws InterruptedException
在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。该线程不丢失任何监视器的所属权。
线程的让步
public static void yield()
暂停当前正在执行的线程对象,并执行其他线程。
线程的插队
public final void join(long millis,int nanos)throws InterruptedException
等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。 若没有参数或者参数为0,表明要一直等下去
线程的通信
public final void wait(long timeout,int nanos)throws InterruptedException
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
public final void notify()
唤醒此同步锁上等待的第一个调用wait()的线程
public final void notifyAll()
唤醒此同步锁上调用wait()的所有线程
- 线程的调度-守护线程
- 线程的调度-守护线程
- 线程调度的监视
- 线程调度的监视
- 线程的调度
- 线程的调度-休眠
- 线程的调度问题
- -线程的调度
- 线程的调度
- 线程的调度
- 设置线程的调度
- java的线程调度
- 线程的调度-合并
- 线程的调度-让步
- 线程的调度
- 线程的调度-让步
- 线程的调度-合并
- 线程的调度-优先级
- HDU:1551 Cable master(二分)
- sdut oj3330 顺序表应用6:有序顺序表查询
- 配置Eclipse来调试并发代码
- Condition实现原理
- struts的几个小异常
- 线程的调度
- MATLAB - plot函数
- HDU_1907&2509 博弈(Nim博弈变形)
- (18)HTML标签详解之<div> <span>
- sdut oj3329 顺序表应用5:有序顺序表归并
- Xamarin For Visual Studio第二坑 - 虚拟机调试
- 关闭chrome访问麦克风标签页上小红点的方法
- Grandpa's Estate(判断是否有点在凸包边上)
- [JS]JavaScript的数据类型