java后台进程和线程优先级
来源:互联网 发布:python3 json 编辑:程序博客网 时间:2024/05/01 22:48
1. 后台线程:处于后台运行,任务是为其他线程提供服务。也称为“守护线程”或“精灵线程”。JVM的垃圾回收就是典型的后台线程。
特点:若所有的前台线程都死亡,后台线程自动死亡。
设置后台线程:Thread对象setDaemon(true);
setDaemon(true)必须在start()调用前。否则出现IllegalThreadStateException异常;
前台线程创建的线程默认是前台线程;
判断是否是后台线程:使用Thread对象的isDaemon()方法;
并且当且仅当创建线程是后台线程时,新线程才是后台线程。
例子:
class Daemon implements Runnable{
public void run() {
for (int i = 0; i < 200; i++) {
System.out.println("Daemon -->" + i);
}
}
}
public class DaemonDemo {
public static void main(String[] args) {
/* Thread cThread = Thread.currentThread();
System.out.println(cThread.isAlive());
//cThread.setDaemon(true);
System.out.println(cThread.isDaemon());*/
Thread t = new Thread(new Daemon());
System.out.println(t.isDaemon());
for (int i = 0; i < 10; i++) {
System.out.println("main--" + i);
if(i == 5){
t.setDaemon(true);
t.start();
}
}
}
}
2,线程的优先级:
每个线程都有优先级,优先级的高低只和线程获得执行机会的次数多少有关。
并非线程优先级越高的就一定先执行,哪个线程的先运行取决于CPU的调度;
默认情况下main线程具有普通的优先级,而它创建的线程也具有普通优先级。
Thread对象的setPriority(int x)和getPriority()来设置和获得优先级。
MAX_PRIORITY : 值是10
MIN_PRIORITY : 值是1
NORM_PRIORITY : 值是5(主方法默认优先级)
注意:每个线程默认的优先级都与创建他的父线程的优先级相同,在在默认的情况下,
main线程具有普通优先级,由main线程创建的子线程也具有普通优先级
例子:
class Priority implements Runnable{
public void run() {
for (int i = 0; i < 200; i++) {
System.out.println("Priority-- " + i);
}
}
}
public class PriorityDemo {
public static void main(String[] args) {
/**
* 线程的优先级在[1,10]之间
*/
Thread.currentThread().setPriority(3);
System.out.println("main= " + Thread.currentThread().getPriority());
/*
* public final static int MIN_PRIORITY = 1;
* public final static int NORM_PRIORITY = 5;
* public final static int MAX_PRIORITY = 10;
* */
System.out.println(Thread.MAX_PRIORITY);
//===============================================
Thread t = new Thread(new Priority());
for (int i = 0; i < 200; i++) {
System.out.println("main" + i);
if(i == 50){
t.start();
t.setPriority(10);
}
System.out.println("-------------------------"+t.getPriority());
}
}
}
- java后台进程和线程优先级
- Java多线程系列(8)--线程优先级和守护线程(后台线程)
- JAVA 用户线程,后台进程
- 修改进程和线程优先级(todo)
- 进程和线程之间的关系&优先级
- java 线程返回值,优先级,后台线程 示例代码
- 进程优先级与后台进程
- java#4 控制线程(join),后台线程,线程睡眠(sleep),线程让步(yield),线程优先级
- 进程、线程优先级
- java并发(2)-优先级,让步,后台线程
- Java 进程和线程
- Java线程和进程
- java 进程和线程
- java线程和进程
- java自旋 和 操作系统唤醒线程优先级
- 改变进程和线程的优先级(Windows)
- Windows核心编程学习笔记--进程和线程的优先级
- java前台线程和后台线程
- 微软失落的十年:官僚主义拖累科技巨头
- error:Injection of autowired dependencies failed
- SharePoint 2010 匿名用户调用Client Object Model访问列表项
- 【数据结构】静态链表_StaticLinkList
- ExtJs.ajax.request的异步请求
- java后台进程和线程优先级
- “(OS 10038)在一个非套接字上尝试了一个操作”解决办法
- 虚拟服务器无法发布网站
- 流程整理
- 什么是百度权重如何提高百度权重
- Java基础知识整理(六)-final和static
- go语言笔记
- HP-UX ServiceGuard - Logical Volume Manager How to Add a Disk-Volume Group-Logical Volume...
- 根据hostname 实现 Hadoop RackAwareness