1.第三个策略是扩展功能,而不是扩展类本身,并将扩展代码置于一个“助手(helper)”类
2.(客户端加锁)这里的问题在于同步问题发生在错误(我认为是“不同”)的锁上。但是,通过使用封装容器的内部锁,可以支持客户端加锁。
3.(组合)向已有的类中添加一个原子操作,还有更健壮的选择:组合。
4.实施:使用Java监视器模式有效的封装了一个已有的的List ,而且只要我们的类持有底层list的唯一外部引用,那么就能保证提供线程安全性。
1.第三个策略是扩展功能,而不是扩展类本身,并将扩展代码置于一个“助手(helper)”类
2.(客户端加锁)这里的问题在于同步问题发生在错误(我认为是“不同”)的锁上。但是,通过使用封装容器的内部锁,可以支持客户端加锁。
3.(组合)向已有的类中添加一个原子操作,还有更健壮的选择:组合。
4.实施:使用Java监视器模式有效的封装了一个已有的的List ,而且只要我们的类持有底层list的唯一外部引用,那么就能保证提供线程安全性。