JAVA线程中的守护线程(Daemon)
守护线程(Daemon)
Java有两种Thread:“守护线程Daemon”与“用户线程User”。
我们之前看到的例子都是用户,守护线程是一种“在后台提供通用性支持”的线程,它并不属于程序本体。
从字面上我们很容易将守护线程理解成是由虚拟机(virtual machine)在内部创建的,而用户线程则是自己所创建的。事实并不是这样,任何线程都可以是“守护线程Daemon”或“用户线程User”。他们在几乎每个方面都是相同的,唯一的区别是判断虚拟机何时离开:
用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。
守护线程:守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。
setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。isDaemon方法将测试该线程是否为守护线程。值得一提的是,当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。
import java.io.IOException;
public class TestDaemonThread {
public static void main(String[] args) {
DaemonThread daemonThread = new DaemonThread();
// 设置为守护线程
daemonThread.setDaemon(true);
daemonThread.start();
System.out.println("isDaemon = " + daemonThread.isDaemon());
try {
// 接受输入,使程序在此停顿,一旦接收到用户输入,main线程结束,守护线程自动结束
System.in.read();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
class DaemonThread extends Thread {
public DaemonThread() {}
/**
* 线程的run方法,它将和其他线程同时运行
*/
public void run() {
while (true) {
for (int i = 1; i <= 100; i++) {
this.setSleep(200);
System.out.println(i);
}
this.setSleep(2000);
}
}
public void setSleep(long time
相关文档:
什么是序列化
java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象。序列化机制在java中有着广泛的应用,EJB、RMI等技术都是以此为基础的。  ......
组件
功能
Com.guipei.listener. SessionListener
监听组件,完成HttpSessionContext的功能
index.jsp
实现用户登陆,创建新的session
logout.jsp
实现用户退出,用户自动删除session
display.jsp
显示用户登陆信息,在用户登陆后自动转入
session.jsp
列出当前所有的session
kill.jsp
杀掉指定的会话 ......
很早之前写过利用泛型和反射机制抽象DAO ,对其中获取子类泛型的class一直不是很理解。关键的地方是HibernateBaseDao的构造方法中的
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
entityClass = (Class)params[0] ......
JAVA的容器---List,Map,Set
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection接口
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相 ......