zoukankan
html css js c++ java
高并发可以不加锁吗
最近遇到别人问的一个问题,如下:
高并发下修改商品库存,加锁会导致性能问题,怎样实现在不加锁的情况下实现高性能修改库存?
我的答案:
1、一般对于并发处理都需要加锁,否则会导致共享变量不可见问题,尽量将锁的力度变小
2、如果确认不能或不想加锁,则做串行化处理,我给的解决方案是消息队列
3、
http://www.zhihu.com/question/36560619
这
里有说
单生产者和单消费者 的队列是可以做到真正无锁,看不懂
4、
http://zhidao.baidu.com/link?url=qDk1lJax-3v08Bng7Ignf8Zk4gVwUAr0118lzm3lRqTiaBpbe5j5x6f9V8yBpoq5zulHudZb7X3pRs8X51Xxlz80VrgskxMaTjyGklUmZ2e
这篇文章也说了做串行化处理,消息队列的线程不做IO操作,而是单独开线程从消息队列取数据进行IO操作
结论:
问我问题的人说已经找到了不加锁,不用消息队列解决问题的方法,但是不告诉我。。。
来自为知笔记(Wiz)
查看全文
相关阅读:
Webservice接口和Http接口
java多线程
时间显示成一串阿拉伯数字
jsp静态与动态包含的区别和联系
解决Win10默认占用80端口
JAVA中文乱码之解决方案
相对路径与绝对路径的差异
JSP静态包含和动态包含的区别和联系
数据库Oracle
智能指针shared_ptr的用法
原文地址:https://www.cnblogs.com/gossip/p/5788623.html
最新文章
转CB大佬的几个有用的MySQL知识
JAVA SE ------------------- 项目的菜单输入
solr7.7.0搜索引擎使用(二)(添加搜索)
solr7.7.0搜索引擎使用(一)(下载安装)
SpringBoot获取resource下证书失败
修改Centos SSH远程端口
Centos使用key登录验证
记录一次内存耗尽解决过程
fdisk分区
分布式Nginx缓存清理(PHP的socket编程)
热门文章
javascript prototype 剖析
JavaScript:变量对象(Variable Object)
javascript中创建对象的几种方式
javascript面向对象知识点
java socket编程
jquery的tree table(树表)
小学递归查询
Image Cropper+java实现截图工具
js跨域问题的解决
Boostrap学习心得
Copyright © 2011-2022 走看看