java的Thread类和Runnable接口
守护线程
Thread有两种线程,即“守护线程Daemon”与“用户线程User”。守护线程的优先级非常低,通常在程序里没有其他线程运行时才会执行它。当守护线程是程序里唯一在运行的线程时,JVM会结束守护线程并终止程序。守护线程通常用于在同一程序里给普通线程(也叫使用者线程)提供服务。它们通常无限循环的等待服务请求或执行线程任务。它们不能做重要的任务,因为我们不知道什么时候会被分配到CPU时间片,并且只要没有其他线程在运行,它们可能随时被终止。JAVA中最典型的这种类型代表就是垃圾回收器。
setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,此方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。当一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程。Java垃圾回收线程就是一个典型的守护线程,当我们的程序中不在有任何运行中的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开。
示例一:
|
|
|
|
|
|
示例二:
|
|
|
|
|
|
|
|