MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

java多线程笔记

Posted on 2008-09-08 02:06 leekiang 阅读(178) 评论(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实现

只有注册用户登录后才能发表评论。


网站导航: