黑马程序员技术交流社区
标题:
java 线程安全问题
[打印本页]
作者:
裙下之臣
时间:
2014-9-6 23:24
标题:
java 线程安全问题
java线程安全的处理我知道的现在就2种
lock、synchronized
我想线程安全封装在我框架的底层。但是在开发中我始终有个疑问:
1.数据会出出现完整性问题(多线程并发的时候 你一个逻辑线程需要set 10属性,但才3个,另外一个逻辑线程要取这个对象,那个瞬间他取过去的数据实际上就只改了3个属性)
2.如果我set了 但是update失败!但是内存中的数据任然有部分已经受到了影响
好了!synchronized不能很好的解决我的问题,那么我就来用Lock。Lock必须显示的加锁和放锁
我要防止上面的问题,在比如getById()的时候就有了2中加锁方式,加读锁和写锁。我需要修改的查询就在调用getById中加上写锁,只读不修改的时候就加读锁。而现在问题又来了
并且我是加在User的实例对象上的,加载Dao也可以但性能会底很多!
1.我加了写锁之后必须等我逻辑线程处理完后 简单的说就是要 update之后才能放锁!
2.如果逻辑线程在取得写锁后逻辑出现异常了!导致没有换锁!
我想问下你们一般线程安全是怎么处理的呢!还有除了我说的3种,还有什么好的处理方式呢!
作者:
裙下之臣
时间:
2014-9-6 23:25
有木有大神啊 求解决啊!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2