prv*_*rvn 5 java multithreading
以下是JCIP的摘录
作者说,为了使上面的代码线程安全,我们必须使用客户端锁定.
要使此方法有效,我们必须使用List使用的相同锁,方法是使用客户端锁定或外部锁定.客户端锁定需要保护使用某个对象X的客户端代码,其中锁X用于保护自己的状态.为了使用客户端锁定,您必须知道X使用什么锁.
为什么我们不能简单地将List <E>对象设置为私有以使ListHelper类是线程安全的?
在这种情况下,每个实例ListHelper都包含自己的列表,您可以将该列表设为私有,并在ListHelper实例上进行同步.我想这是一个有点构造的例子,用尽可能少的代码来表达观点.IMO的名称ListHelper意味着我可以传递一个外部列表,该列表可以被多个ListHelper实例清楚地重用.
我要说的是:给定代码并且不改变list(可能会破坏其他代码)的可见性,您可以list比当前ListHelper实例更好地同步.
| 归档时间: |
|
| 查看次数: |
877 次 |
| 最近记录: |