所以设计锁一定要注意mutex保护的临界区应该尽量的小,并且可以采用锁分离技术,采用粒度更加细的锁。而要想真正的减轻并发控制带来的头痛,那请我们设计好我们的业务对象,把状态封装好,封装的越好,并发控制就越容易。
所以设计锁一定要注意mutex保护的临界区应该尽量的小,并且可以采用锁分离技术,采用粒度更加细的锁? 这个我赞成。
而要想真正的减轻并发控制带来的头痛,那请我们设计好我们的业务对象,把状态封装好,封装的越好,并发控制就越容易。??? 我觉得实际操作起来比较困难。不过楼上能说得更详细更具体就更好了。
不过JDK1。6好象对锁进行了优化,特别是以前的同步处理,很耗费开销。在JDK1。6和JDK1。5下进行了测试,确实有了性能上的提升。
所以我觉得DDD中的聚合时非常的重要,一个系统如果没有设计好聚合,那么真个系统中的对象都是散乱分布的,没有办法控制对业务对象的并发访问,也更加没有办法对业务对象的全局缓存进行并发控制。
ps:上面是关于如何在并发情况下控制共享对象的情况,主要就是封装,和细粒度的锁,而对于并发,我们还可以采用另外一种方法那就是,线程限制,也就是不共享变量,比如把变量设置为局部变量,这样就在线程栈中,或者采用JAVA中的ThreadLocal.