
多线程
文章平均质量分 88
null_null_bug
这个作者很懒,什么都没留下…
展开
-
使用数据库进行分布式加锁实现
1.使用数据库进行分布式加锁行锁以mysql为例,进行举例 :1.1 for update在mysql中使用for update获得行锁。for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级锁,则该用户可以更新也可以查询也可以更新被加锁的数据行,其他用户只能查询,不能更新被加锁的数据行,如果其他用户想更新该表中的数据行,则也必须对表施加行级锁。释放行级:1.执行提交commit语句.2.退出数据库3.程序停止运行.通常情况下,select语句是不会对数据加锁的,妨碍影响原创 2021-05-25 20:27:13 · 757 阅读 · 3 评论 -
总结JAVA中的锁
总结JAVA中各种锁的使用1. 为什么要使用锁? 拿个生活中的示例来说明这个问题吧,某超市做促销,菜仔油半价卖,35块钱一桶。这消息一出必然会有很多的人抢购。但菜仔油不是无限供应的,超市通常会把菜仔油放到一个地方,每次放进去一个或者两个人。这些人先购结束了,再放下一波人,直到油卖光了,就结束了。类比卖超市,想像下单程序是不是也是这样子呢,我们的客户通过网页或者手机下单商品。服务器在收到请求后都需要进行扣减库存操作。当非常多的客户同时下单了某一个商品。这样导致大量的请求都需要去扣库存。这时候我们原创 2021-04-23 09:11:02 · 325 阅读 · 0 评论 -
java踩坑之线程池
java踩坑之线程池就有前几天刚完成的大型对比时使用到了线程池,对于线程池,我想我有好多踩过的坑的经历,这也就是所说的经验吧,我想通过这篇文章,将我所踩过的坑,都记录下来.坑1-newFixedThreadPool程序问题演示:这是jdk提供的一个默认线程线程池的实现。创建一组固定大小的线程池,来运行任务。当时这个任务是用来运行后台的异步发送通知任务。每秒大约100个发送量,高峰时段大约500个发送量,量并不大。但有一天通知服务突然宕机了,而我们服务调用超时的时间是2分钟,结果就导致我们的服务出现了原创 2021-02-17 13:21:12 · 1111 阅读 · 1 评论