【java多线程与并发库】---传统java多线程<3> .线程分类
来源:互联网 发布:投资域名注意哪些问题 编辑:程序博客网 时间:2024/05/23 14:58
1、 java中用两种线程:
1) 守护线程
守护线程(Daemon)是比较特殊的一种低级别线程,一般被用于在后台为其它线程提供服务。比如当用户编写Word文档时,不断进行拼写检查的线程就是个守护线程,它不会影响用户编辑文件。典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,不需要占用大量的系统资源,多用于实时监控和管理系统中的可回收资源。
可以通过调用方法 isDaemon()来判断一个线程是否是守护线程,而将一个用户线程设置为守护线程的方法是在线程对象创建之前调用线程对象的setDaemon(boolean on)方法。true为守护线程,false为用户线程。
public class Daemons extends Thread {public Daemons(){this.setDaemon(true);//设置线程为守护线程/*setDaemon必须在线程启动之前调用,当线程运行时调用会发生异常如果要在一个守护线程中产生其他线程,那么新产生的线程都是守护线程 */this.start();}public void run(){while(true){System.out.println("daemon "+Thread.currentThread().getName()+" is running");try {sleep(500);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=0;i<5;i++){new Daemons();}}}
运行结果:
2) 用户线程
守护线程和普通线程的区别就在于守护线程不是应用程序的核心部分。当一个应用程序的所有非守护线程终止运行时,及时仍然有守护线程运行,应用程序也将终止。反之,只要有一个非守护线程运行,应用程序就不会终止。
- 【java多线程与并发库】---传统java多线程<3> .线程分类
- 【Java多线程与并发库】1.传统线程技术回顾
- 【Java多线程与并发库】1.传统线程技术回顾
- 【Java多线程与并发库】01 传统线程技术
- 【java多线程与并发库】---传统java多线程<1>线程基本概念
- 【java多线程与并发库】---传统java多线程<2> 线程创建方式
- 【java多线程与并发库】---传统java多线程<4> .线程状态及优先级
- 【java多线程与并发库】---传统java多线程<5> 线程控制
- 【Java多线程与并发库】3.传统线程互斥技术
- 【Java多线程与并发库】4.传统线程同步通信技术
- 【Java多线程与并发库】3.传统线程互斥技术
- 【Java多线程与并发库】4.传统线程同步通信技术
- 【Java多线程与并发库】03 传统线程互斥技术 synchronized
- 【Java多线程与并发库】04 传统的线程同步通信技术-synchronized/wait/notify/notifyAll
- Java多线程与并发应用-(3)-传统线程通信技术及生产者消费者模式
- 【Java多线程与并发库】2.传统定时器技术回顾
- 【Java多线程与并发库】2.传统定时器技术回顾
- 【Java多线程与并发库】02 传统定时器技术
- JAVA 从项目的 properties 文件中 提取 属性值
- Java IO输入输出流
- C++ 使用API写Windows程序
- <string.h> && <string> && <cstring>
- Matlab常用函数举例(十一)
- 【java多线程与并发库】---传统java多线程<3> .线程分类
- 4.Pylon 透过Pylon和MIL函数看一般硬件SDK API的组织架构
- 重载overload与重写override的区别
- 关于asm(" RPT #7 || NOP")的一点解释
- 实验报告 12-1
- ios开发 录音内部过程
- 浅谈android的selector,背景选择器
- 公共自行车iPhone版(苏州数据加密算法改变,更新中)
- TMS320F28335 DMA配置详解