猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Java中在使用多线程时方法加Lock的问题?
Java中在使用多线程时,调用的方法计算比较复杂。为了避免线程之间数据混乱,使用了Lock,但是这就导致失去了多线程应该有效果,有什么方法能够解决吗?
九州编程
浏览 160
回答 3
3回答
守着星空守着你
尽量减少Lock的范围,尽量早UnLock,比如只在需要共享的数据之间Lock,这样其他地方可以实现多线程的并行。或者就是把数据尽量拆分开,不共享
0
0
0
慕容3067478
多线程加锁的话,你就变成了单线程写入操作了吧,那样多线程就没有什么意义了,一般如果是求和之类的,用原子加减之类的方法,就能避免并发冲突的情况。你可以找一下原子加之类的方法
0
0
0
慕莱坞森
这就要看Lock的颗粒度范围了,如果你是对整个处理进行同步阻塞,那对这一整个处理而言就失去了并行的意义;但你可以只针对共享资源相关的部分处理进行Lock,这样还是可以达到提高效率的目的的。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续