java与mysql并发之惑

mysql与java都可以解决并发的问题 但是谁好谁坏?

假设使用java解决 商品数量的问题 那么 我上锁的是 一个商品数量减少的方法
那么这个方法肯定是servlert 中调用的方法 一个servert只有一个类 而且我们的方法肯定是通用的
就比如说 香蕉的商品数量也是在这个方法减少 苹果也是 梨子也是 那么就会有一个问题 我的锁密度太大
导致了我的 并发度 效率问题

这个时候 mysql的 行级锁(InnoDB) 就可以解决此问题 为什么??
因为是锁的一行数据 密度小 也就是说 香蕉的商品数量减少 是在a锁 我的苹果数量减少 是在b锁

反正每一行都是不同的锁 我们常说 数据库的每一行都是一个对象 可以理解为 行锁 其实就是锁的 每一行不
同的对象 mysql是c++写的 那么每一个行数据其实就是对应着一个c++层面的对象 如果对A表开启了行锁
那么可以理解为 A表 中的每一行数据对应着 C++的对象 和 锁

那么java的并发真的没鸟用吗?

不是 个人认为 如果对于java更加高级的方面 没有想法发展 那么框架的crud 其实够了 不会有并发的问题
但是呢 如果想往高级的方面发展 那么 java并发 必不可少 为什么???
就比如我封装的一个订单失效队列 用到了java并发 JUC 并发工具包.
框架 底层不仅仅只有反射 序列化 动态代理 等 其实还有并发安全问题 就比如spring 的抽象缓存

还比如 在<<设计亿级流量秒杀系统>> 一 书中 提到 如果很多用户 访问我们的服务器 我们怎么做到服务器不宕机 其实java并发中有一个Semaphore 可以进行限流 限制用户的数量 所以java并发其实很关键 或者说java并发是优化的方案,或者又说 java是道防线,当然Redis,消息队列也是防线,我们都可以进行优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值