Chinaunix首页 | 论坛 | 博客
  • 博客访问: 83792
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-02 20:25
文章分类

全部博文(31)

文章存档

2015年(2)

2014年(29)

我的朋友

发布时间:2014-09-02 21:49:55

   在两种情况下需要同步,一是访问临届资源,二是线程或进程间合作。这两种对应Java语言的API分别是锁跟wait/notify。同步进入临界区通常需要满足4个条件:1. 空闲让进,这是显然的2. 忙则等待,这也是显然的3. 有限等待,这是防止线程死等,synchronized并不支持,并发包中的Lock支持4. 让权等待,不能进入.........【阅读全文】

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

发布时间:2014-09-02 20:16:14

   如果一些变量只有线程自己访问,那么就可以使用ThreadLocal,这是一种通过线程封闭来实现线程安全的一种方式。ThreadLocal的用法跟HashMap非常像,一个set/get,还有一个initialValue方法,使用非常简洁。 可以将其想象成Map,但多少有点不同。比如HashMap是key-->value,但ThreadLocal是这样的(Thread,.........【阅读全文】

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

发布时间:2014-09-02 16:23:18

   Java之前有stop跟suspend方法从外部强制终止跟暂停一个线程。但是这两个方法都存在一个相当严重的问题,因为这样它们都被废弃了。stop:一个线程被外部强行stop后会解锁所有监视器,导致阻塞该监视器的线程被唤醒。这可能导致被唤醒的线程使用一些状态不完全的对象。因为这些对象本来可能是要在被终止线程进.........【阅读全文】

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

发布时间:2014-09-01 17:13:13

     当一个资源可以分成很多部分的时候,如果对每个部分使用不同的锁,那么资源的争用就大大的降低,这是使用分离锁的理由。并发包中的ConcurrentHashMap是分离锁的典型例子。     一个简单的使用分离锁的map可以很快的被写出来:点击(此处)折叠或打开packa.........【阅读全文】

阅读(1017) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册