Java 线程优先级详解及实例
2017-04-20 09:43
549 查看
Java 线程优先级详解及实例
操作系统基本采用时分的调度运行线程,操作系统会分出一个个时间片,线程会被分配到若干个时间片,当线程的时间片用完了就会发生线程调度,并且等待着下次调度,线程被分配到的时间片多少也就决定了线程使用处理器资源的多少,而线程优先级就是决定线程能够分配多少处理器资源的线程属性。
在Java多线程中,通过一个整形变量priority来控制优先级,优先级的范围从1-10.默认是5,优先级越高越好。
public class Priority { public static void main(String[] args) { Thread t1 = new Mythread(); t1.setName("线程1"); t1.setPriority(1); //设置优先级 Thread t2 = new Mythread(); t2.setName("线程2"); t2.setPriority(10); //设置优先级 t1.start(); t2.start(); } } class Mythread extends Thread{ @Override public void run() { for(int i=0;i<10;i++){ System.out.println(getName()+"执行"+i+"次"); } } }
执行结果:
线程2执行0次 线程2执行1次 线程2执行2次 线程2执行3次 线程2执行4次 线程2执行5次 线程2执行6次 线程2执行7次 线程2执行8次 线程2执行9次 线程1执行0次 线程1执行1次 线程1执行2次 线程1执行3次 线程1执行4次 线程1执行5次 线程1执行6次 线程1执行7次 线程1执行8次 线程1执行9次
我们可以看到系统会优先执行线程1。但是也并不是每次都会优先执行线程1的,特别是两个线程优先级区别不是很大的时候,线程优先级基本上作用不大。线程优先级不能作为程序正确性的依赖,因为操作系统可以完全不用理会java线程对于优先级的决定。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
相关文章推荐
- Java 创建线程的两个方法详解及实例
- Java线程同步、同步方法实例详解
- Java 多线程优先级实例详解
- Java多线程中线程间的通信实例详解
- java线程--优先级、休眠、让步、插队实例
- Java 线程对比(Thread,Runnable,Callable)实例详解
- java线程同步操作实例详解
- JAVA多线程Thread setPriority 设置线程优先级方法入门详解
- 详解Java的线程的优先级以及死锁
- Java守护线程实例详解_动力节点Java学院整理
- java 线程公平锁与非公平锁详解及实例代码
- java synchronized加载加锁-线程可重入详解及实例代码
- Java 线程实例讲解综述
- 利用Java控制EXCEL实例详解
- .NET多线程技术详解(4) 线程优先级
- Java 线程 详解
- 事件驱动模型实例详解(Java篇)
- Java 线程实例讲解综述
- 事件驱动模型实例详解(Java篇)
- 一个简单的SWT程序实例及详解-Java基础-Java-编程开发