请问:接口加锁可以保证所有访问这个接口的请求是线程安全的吗?

我想请问在请求访问我们的接口时,如果对接口方法加锁,多个线程并发访问时线程是线性访问吗

对接口的实现类中的某个方法加锁是可以保证线程安全的

你的意思是说,,,在接口处加个锁,能否保证整个数据安全?不能保证,,,而且不建议在接口处加锁,,粒度很大,,,只需要对公共资源加锁就好

应该是的,只有某个线程执行完你加锁的方法后,另一个才能再访问

具体事例要具体分析,接口加锁不能完全保证安全,2楼说的对,一般只要对公共资源加锁就行了,资源下载保证公共资源的安全性。

synchronized关键字不是方法重写签名的一部分,所以要保证线程安全要在具体调用的方法上加。

谢谢,那假如我接口当中对数据库的数据进行读写,我想保证数据的准确性,防止程序写操作执行了但是还没有完整提交到数据库(事务提交)而导致的误差,那对 整个接口加锁是没有意义的是吗,如果没意义,是因为实际执行的是两个类对象吗(因为锁方法实际是锁对象),其实我比较纠结的就是这个点,实际操作我会用 reentrantLock去做

还是看业务需求,,,不一样的需求,不一样的架构,不一样的加锁方式
比如对一个订单竞争,那就在内存设置个锁去竞争,,或者设置缓存延迟写入数据库,等等..

线程安全肯定能保证但是竞争会很激烈,引用一个大神的话“慢不在加锁,在于竞争”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值