一、概念

1. 处于就绪状态的线程,会进入“就绪队列”等待JVM来挑选。

2. 线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5。

3. 使用下列方法获得或设置线程对象的优先级。

int getPriority();

void setPriority(int newPriority);

注意:优先级低只是意味着获得调度的概率低。并不是绝对先调用优先级高的线程后调用优先级低的线程。

/**优先级低只是意味着获得调度的概率低。并不是绝对先调用优先级高的线程后调用优先级低的线程.
* 就是说手拿1000张彩票比1张彩票的中奖概率高点,但不是说1张彩票就不会中奖
* 优先级范围:数字1-10
* norm 标准的足额的
* 3个常量:NORM_PRIORITY=5(所有线程的默认值)
* MIN_PRIORITY=1
* MAX_PRIORITY=10
*
*/
package cn.sxt.thread; public class Test_0408_ThreadPriority {
public static void main(String[] args) {
MyPriority mPriority=new MyPriority();
Thread t1=new Thread(mPriority,"百度");
Thread t2=new Thread(mPriority,"阿里");
Thread t3=new Thread(mPriority,"京东");
Thread t4=new Thread(mPriority,"腾讯");
Thread t5=new Thread(mPriority,"网易");
//设置优先级一定在启动之前,优先级代表调度概率大,不代表绝对的执行的先后顺序
//即优先级大的也可能正在后边执行,只是大概率在前边执行 t1.setPriority(Thread.MAX_PRIORITY);//常量10
t2.setPriority(Thread.MIN_PRIORITY);//常量1
t3.setPriority(Thread.NORM_PRIORITY);//常量5
t4.setPriority(7);
t5.setPriority(4); t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class MyPriority implements Runnable{ public void run() {
System.out.println(Thread.currentThread().getName()+"-->"+Thread.currentThread().getPriority()); } }

二、守护线程

/***daemon:守护神
* 守护线程:是为用户线程服务,jvm(Java虚拟机)停止时不用等待守护线程执行完毕
* 一般用来做日志等
* 默认情况下所有线程都是 用户线程,虚拟机需要等所有的用户线程执行完毕才会停止
*
*/
package cn.sxt.thread; public class Test_0408_ThreadDaemon {
public static void main(String[] args) {
Time time=new Time();
People people=new People();
Thread th=new Thread();
th.setDaemon(true);//设置用户线程为守护线程,即虚拟机不会等他执行完毕(在控制台输出语句)才停止
th.start(); new Thread(people).start(); }
} class People extends Thread{
public void run() {
for (int i = 1; i <= 12; i++) {
System.out.println(i+"月劳作");
}
System.out.println("一年结束了!");
}
}
//时间是永恒存在,守护进程,是为用户进程People服务的
class Time extends Thread{
public void run() {
for (int i = 1; i <= 24; i++) {//理论上应设置为死循环,因为时间一直都有,但这里设为24
System.out.println(i+"--时间在流逝");
}
} }

[19/04/08-星期一] 多线程_线程的优先级(Priority) 和 守护线程(Daemon)的更多相关文章

  1. day36 joinablequeue、多线程理论、多线程的两种使用方式、守护线程、互斥锁、死锁、递归锁、信号量

    1.joinablequeue队列 joinablequeue与queue一样,也是一种队列,其继承自queue,也有queue中的put 与get 方法,但是在joinablequeue中有自己的 ...

  2. Python3学习之路~9.2 操作系统发展史介绍、进程与线程区别、线程语法、join、守护线程

    一 操作系统发展史介绍 参考链接:http://www.cnblogs.com/alex3714/articles/5230609.html 二 进程与线程 进程: 对各种资源管理的集合 就可以称为进 ...

  3. 第三十三天- 线程创建、join、守护线程、死锁

    1.线程,线程创建 概念:在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程,线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责 ...

  4. day 33 什么是线程? 两种创建方式. 守护线程. 锁. 死锁现象. 递归锁. GIL锁

    一.线程     1.进程:资源的分配单位    线程:cpu执行单位(实体) 2.线程的创建和销毁开销特别小 3.线程之间资源共享,共享的是同一个进程中的资源 4.线程之间不是隔离的 5.线程可不需 ...

  5. 从头认识java-18.2 主要的线程机制(5)-守护线程与非守护线程

    这一章节我们来讨论一下守护线程与非守护线程. 1.什么是守护线程?什么是非守护线程? 非守护线程:Java虚拟机在它全部非守护线程已经离开后自己主动离开. 守护线程:守护线程则是用来服务用户线程的,假 ...

  6. 26_多线程_第26天(Thread、线程创建、线程池)_讲义

    今日内容介绍 1.多线程 2.线程池 01进程概念 A:进程概念 a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能 ...

  7. java中线程分两种,守护线程和用户线程。

    java中线程分为两种类型:用户线程和守护线程. 通过Thread.setDaemon(false)设置为用户线程: 通过Thread.setDaemon(true)设置为守护线程. 如果不设置次属性 ...

  8. Java多线程系列--“基础篇”10之 线程优先级和守护线程

    概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例 转载请注明出处:http://www.cnblogs.com/skyw ...

  9. java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)

    今天开始就来总结一下Java多线程的基础知识点,下面是本篇的主要内容(大部分知识点参考java核心技术卷1): 1.什么是线程以及多线程与进程的区别 2.多线程的创建与启动 3.中断线程和守护线程以及 ...

随机推荐

  1. JVM(五) class类文件的结构

    概述 class类文件的结构可见下面这样图(出处见参考资料),可以参照下面的例子,对应十六进制码,找出找出相应的信息. 其中u2 , u4 表示的意思是占用两个字节和占用四个字节,下面我们将会各项说明 ...

  2. 设置固定ip后无法上公网

    把电脑ip设置成固定ip后,发现其不能上公网,突然想到要设置DNS. 运行cmd程序,输入命令ipconfig /all查看此网络的DNS,设置固定ip 时添加此DNS地址即可.

  3. SSH框架整合中Hibernate实现Dao层常用结构

    一.疑惑 一直以来,我在使用SSH框架的时候经常会发现后者有疑虑到底使用hibernate的那种方法或者如何配置hibernate来操作数据库,经过 一段时间的学习下面我来总结一下,常用的dao层配置 ...

  4. Apache Commons Email 使用网易企业邮箱发送邮件

    最近使用HtmlEmail 发送邮件,使用网易企业邮箱,发送邮件,死活发不出去!原以为是网易企业邮箱,不支持发送邮箱,后面经过研究发现,是apache htmlEmail 的协议导致,apache E ...

  5. unity3d之切换场景不销毁物体

    using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...

  6. CakePHP redirect函数

    public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contr ...

  7. python垃圾回收机制(Garbage collection)

    由于面试中遇到了垃圾回收的问题,转载学习和总结这个问题. 在C/C++中采用用户自己管理维护内存的方式.自己管理内存极其自由,可以任意申请内存,但也为大量内存泄露.悬空指针等bug埋下隐患. 因此在现 ...

  8. perf4j 监控请求 + traceId区分日志

    1. 场景 从request进入Controller到出去的时间, 可以统计接口访问的一些数据,如:平均处理时间.最大处理时间 2. 代码 2.1 mvc-servlet 定义切面和拦截器 <? ...

  9. Luogu3403: 跳楼机

    题面 传送门 Sol 有一个显然的想法 处理出\(y, z\)能凑出的高度 然后这些高度凑一些\(x\)就可以得到其它的高度 那么可以把这些\(y, z\)凑出的高度对\(x\)取模,其它的用\(x\ ...

  10. 51Nod1957 有限背包计数问题

    传送门 另一个传送门 这题还挺有意思…… 先贴一波出题人的题解…… (啥你说你看不见?看来你还没过啊,等着A了再看或者乖乖花点头盾好了……) 然后是我的做法……思想都是一样的,只是细节不一样而已…… ...