Chinaunix首页 | 论坛 | 博客

Art

  • 博客访问: 48433
  • 博文数量: 39
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-11 17:10
文章分类

全部博文(39)

文章存档

2010年(1)

2009年(14)

2008年(24)

我的朋友
最近访客

分类:

2009-03-13 11:06:50

1、java的线程分守护线程和非守护线程

   MyThread myThread = new MyThread();

   myThread.setDaemon();//在线程开始运行之前可以将之设置为守护线程

  守护线程就是为了提供服务,当没有可服务的线程时,守护线程就自动结束了,如垃圾回收线程

  而非守护线程则没有该特性。

2、synchronized关键字参数往往是对象,它获得的是对象锁。若某进程获得了某个对象锁后,其他进程只能访问该对象的非synchronized部分

3、线程的几种状态:

   new、runnable、blocked、waiting、timed waiting、terminated

   其中blocked是因为得不到锁,此时线程会挂接在锁队列上。而waiting是因为不满足某条件,这时thread会在该condition的wait set中等待signalAll()的出现。timed waiting则是wait时间的情况,等时间到了,自动苏醒。

4、每个Object都用一个隐含的Lock,类似于java.util.cocurrent.locks.lock。该Lock还有一个Condition,类似于java.util.cocurrent.locks.condition。这个隐含的lock是为synchronized关键字提供服务的。故wait()相当于condition中的await(),notifyAll()相当于condition中的signalAll()。

总之,synchronized机制是lock\condition机制的简易实现版

5、stop和suspend被启用了。因为容易引起数据的不一致性和死锁问题

阅读(338) | 评论(0) | 转发(0) |
0

上一篇:introduction of java.lang

下一篇:XQuery简介

给主人留下些什么吧!~~