`
BBjava
  • 浏览: 126382 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Daemon threads

阅读更多
"Daemon thread"是为提供普通服务在后台运行,跟寄主程序同样生命的,却不属于寄主程序的一个线程。寄主程序(non-daemon thread)一但终止,整个程序也就结束了,即使"Daemon thread"还没有运行到结尾.也就是说non-daemon thread终止,daemon thread也终止。
下面例子是引用自tij4的:
引用
package org.iteye.bbjava.concurrency.daemon;

import java.util.concurrent.TimeUnit;

public class SimpleDaemons implements Runnable {

	@Override
	public void run() {
		try {
			while (true) {
				TimeUnit.MICROSECONDS.sleep(100);
				System.out.println(Thread.currentThread() + " " + this);
			}
		} catch (InterruptedException e) {
			System.out.println("sleep interrupted!");
		}
	}

	public static void main(String[] args) throws InterruptedException {
		for (int i = 0; i < 10; i++) {
			Thread daemon = new Thread(new SimpleDaemons());
			daemon.setDaemon(true);
			daemon.start();
		}
		System.out.println("All daemon started!");
		TimeUnit.MILLISECONDS.sleep(175);
	}

}
分享到:
评论

相关推荐

    java中的daemon thread

    java中有两种类型的thread,user threads 和 daemon threads。 User threads是高优先级的thread,JVM将会等待所有的User Threads运行完毕之后才会结束运行。 daemon threads是低优先级的thread,它的作用是为User ...

    CountThree.zip_threads

    7. **守护线程(Daemon Threads)**:守护线程不会阻止程序的退出,通常用于后台服务,如垃圾回收。通过调用`setDaemon(true)`方法可以将线程设置为守护线程。 8. **线程池**:Java的`ExecutorService`和`...

    python之多线程编程二1

    其中一个重要特性就是支持守护线程(daemon threads)。守护线程是一种特殊的线程,它的生命周期与主线程紧密关联:只有当所有非守护线程结束后,主线程才会退出。因此,如果希望某个线程在主线程退出后仍能继续运行...

    Java线程编程学习笔记(二)

    这些示例可能涵盖了各种场景,如生产者消费者模型、线程间的协作(通过信号量Semaphore)、线程优先级、守护线程(daemon threads)以及线程中断的处理。通过分析这些示例,我们可以更好地理解Java线程在实际开发中...

    Java多线程的其他知识_动力节点Java学院整理

    同步机制(synchronized关键字、Lock接口及其实现如ReentrantLock),线程间的通信(wait()、notify()、notifyAll()方法以及BlockingQueue),线程优先级,守护线程(daemon threads)等。线程的生命周期描述了一个...

    java第14章java-chapter14.rar

    通过使用守护线程(daemon threads)和线程组,可以更好地管理和控制线程的生命周期。此外,synchronized关键字用于同步访问共享资源,防止数据不一致。 2. **集合框架**:Java集合框架是处理对象集合的一系列接口...

    线程池Thread

    5. **守护线程(Daemon Threads)**:可选特性,线程池中的线程可以设置为守护线程,这意味着如果线程池中只有守护线程在运行,JVM会自动退出。 在Java中,`java.util.concurrent`包提供了线程池的实现,最常用的是...

    1java锁与并发与线程池.doc

    - **守护线程**(Daemon Threads)与用户线程相对,它们在后台运行,只有当所有非守护线程结束后,JVM才会终止守护线程。例如,垃圾回收器就是典型的守护线程。 2. **类锁与对象锁** - **类锁**是基于类的静态...

    Java虚拟机实现原理分析.pdf

    在JVM的设计中,守护线程(daemon threads)扮演了特殊的角色。这些线程在后台运行,执行一些辅助任务,比如垃圾回收和其它系统维护任务,而不会阻止虚拟机的退出。守护线程与非守护线程(user threads)不同,后者...

    老师给我们的线程小示例

    此外,文档可能还讲解了守护线程(daemon threads)和用户线程的区别,以及如何设置线程的优先级。 `Thread的调用.txt`文件可能详细阐述了如何实例化并启动一个线程。在Java中,有两种方式创建线程:直接继承`...

    经典的java面试题

    高级的Java并发编程话题可能涵盖线程局部存储(`ThreadLocal`),守护线程(daemon threads),以及Java内存模型(JMM)如何确保线程间的可见性与一致性。面试者需要理解 `join()`, `interrupt()`, `isAlive()` 等...

    JVM的相关概念.doc

    在JVM中存在两种类型的线程:守护线程(Daemon Threads)和用户线程(User Threads)。守护线程是由JVM自身创建或由用户标记为守护线程的线程,它们主要为非守护线程提供服务。如果所有非守护线程都结束运行,那么...

    java中守护进程小结

    Java中的守护线程(Daemon Threads)是用于支持应用程序运行的重要组件,它们在后台执行任务,不会阻止Java虚拟机(JVM)的退出。守护线程的主要任务是为其他非守护线程提供服务,例如垃圾回收线程就是典型的守护...

    java多线程读书笔记

    Java线程还有守护线程(daemon threads)的概念,守护线程不会阻止Java虚拟机的退出,只有当所有非守护线程结束时,Java虚拟机才会停止运行。默认情况下,由主线程创建的线程是非守护线程。 Java线程的生命周期包括...

    每天学点C++(C++实例教程:教程+源码)thread.zip

    这个压缩包中的源代码示例可能涵盖这些概念以及其他高级主题,如线程池、线程局部存储(thread_local)、守护线程(daemon threads)等。通过学习和实践这些例子,你可以深入理解C++的线程编程,并能够编写出更高效...

    几个swing多线程的例子

    在 Java 中,有两种主要的线程模型:守护线程(Daemon Threads)和用户线程(User Threads)。守护线程主要用于服务用户线程,而用户线程是程序执行的主要部分,当所有用户线程结束时,程序会终止。在 Swing 中,EDT...

    Android&Java的线程框架与模式_高焕堂_PDF.rar

    此外,还讨论了守护线程(Daemon Threads)和线程优先级等概念。 第二章“Java线程详解”(Thread_Ch02_JavaThread_ok.pdf)深入探讨了Java平台下的线程机制,包括线程间的通信和协作,如wait()、notify()和...

    Java 实例 - 获取线程id源代码+详细指导教程.zip

    6. **守护线程(Daemon Threads)**: 守护线程是一种特殊的线程,当所有非守护线程结束时,程序会自动退出,即使还有守护线程正在运行。使用`setDaemon(true)`方法可以将线程设置为守护线程。 7. **线程池**: ...

    java多线程试题.pdf

    - 超级线程(daemon threads)不影响程序的退出。 9. **序列化**: - 可串行化的类需实现`Serializable`接口,但静态变量不受影响。 - 私有数据权限不会阻止默认的序列化机制,除非使用`transient`关键字标记。 ...

    JAVA 线程 ad

    10. 守护线程(Daemon Threads):守护线程不阻止JVM的退出,常用于后台服务,如垃圾收集器。 在"ThreadSample"这个练习中,你可能会涉及到以上提到的一些或全部知识点,通过实际编程来加深理解,例如创建和管理...

Global site tag (gtag.js) - Google Analytics