为了账号安全,请及时绑定邮箱和手机立即绑定

Java中在使用多线程时方法加Lock的问题?

Java中在使用多线程时方法加Lock的问题?

九州编程 2018-06-18 10:26:08
Java中在使用多线程时,调用的方法计算比较复杂。为了避免线程之间数据混乱,使用了Lock,但是这就导致失去了多线程应该有效果,有什么方法能够解决吗?
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

尽量减少Lock的范围,尽量早UnLock,比如只在需要共享的数据之间Lock,这样其他地方可以实现多线程的并行。或者就是把数据尽量拆分开,不共享


查看完整回答
反对 回复 2018-07-13
?
慕容3067478

TA贡献1773条经验 获得超3个赞

多线程加锁的话,你就变成了单线程写入操作了吧,那样多线程就没有什么意义了,一般如果是求和之类的,用原子加减之类的方法,就能避免并发冲突的情况。你可以找一下原子加之类的方法


查看完整回答
反对 回复 2018-07-13
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

这就要看Lock的颗粒度范围了,如果你是对整个处理进行同步阻塞,那对这一整个处理而言就失去了并行的意义;
但你可以只针对共享资源相关的部分处理进行Lock,这样还是可以达到提高效率的目的的。

查看完整回答
反对 回复 2018-07-13
  • 3 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信