Posted on 2008-09-08 02:06
leekiang 阅读(184)
评论(0) 编辑 收藏 所属分类:
java
1,java实现多线程有两种方式,一种是调用一个继承Thread的实例的start()方法,另外一种是实例化一个Thread,构造函数的参数是一个实现了Runnable接口的类的实例.一般都是使用后一种,因为只有后一种才方便让多个线程操作同一个资源
2,多个线程用同一段代码操作同一个资源时,可能会不同步,这时用synchronized.
对于代码块,格式为synchronized(对象){代码} 在多线程里这个对象必须保证是同一个对象(每个对象都有表示是否上锁的一个标志位)。注意:使用synchronized("test")与synchronized(new String("test"))
是有区别的,后者达不到同步的效果。
对于方法,在方法名前加一个synchronized,这里暗合synchronized(this)
5,不错的入门例子:
http://developers.sun.com.cn/javapassion/handsonlabs/javase/javathreads_index.html
6,servlet就是一个守护线程
java回收线程也是
7,
CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。
在一些应用场合中,某段程序需要等待某个条件达到要求后才能执行,或者等待一定长的时间后此行,从jdk1.5开始就可以使用CountDownLatch实现