博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java后台进程和线程优先级
阅读量:6219 次
发布时间:2019-06-21

本文共 1905 字,大约阅读时间需要 6 分钟。

 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());
}
}
}

 

转载地址:http://hzlja.baihongyu.com/

你可能感兴趣的文章
服务器负载暴涨以后...
查看>>
由IDC机房测试谈主动工作教学实战案例!
查看>>
Hadoop运维记录系列(二十一)
查看>>
IP NAT常见误解笔记
查看>>
RHEL6基础四十八之RHEL文件服务器VSFTP日志文件
查看>>
高可用高性能负载均衡软件HAproxy详解指南-第二章(配置文件、关键字、ACL)...
查看>>
CIDR的特殊性
查看>>
《我的歌声里》程序员版
查看>>
秀一秀我的微软MVP(最有价值专家)的大礼包和水晶奖杯!
查看>>
各个web服务器的性能对比测试
查看>>
基于VMware vSphere 5.0的服务器虚拟化实践(7)
查看>>
MDT 2013 从入门到精通之SQL Configure And Verify
查看>>
vim常见使用命令总结完整分享(一)
查看>>
【Python之旅】第五篇(三):Python Socket多线程并发
查看>>
cacti监控添加thold插件
查看>>
[Ruby] 异常捕获
查看>>
HP 服务器 iLO 远程控制软件 介绍
查看>>
[JavaScript] 环境与内存
查看>>
最全面的常用正则表达式大全
查看>>
不与你商量的远程强制关机
查看>>