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)
查看全文
相关阅读:
第一次代码和思路
人生道路上的三导师
introduce myself
币值转换
HTTP中GET与POST的区别
Quartz中时间表达式的设置-----corn表达式
smartGit30天试用过期
Zookeeper相关
maven创建spring项目之后,启动报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoade
tomcat识别不出maven web项目
原文地址:https://www.cnblogs.com/gossip/p/5788623.html
最新文章
Seajs是什么及其优缺点&如何使用?
HTML5:web socket 和 web worker
详解之-js闭包的用途
OpenGL教程(1)——准备
OpenGL教程(0)——介绍
形如(function(){}).call()的js语句
按照索引的细化提取骨架算法的java实现
Python的逻辑运算符and小析
2014年小结之sql语句优化
log4j加载方式导致的bae和sae部署异常
热门文章
log4j日志优先级问题的后续
log4j日志优先级导致的不输出日志
令人哭笑不得的org.hibernate.MappingException: Unknown entity
小心sae的jvm异常导致的Error 404 – Not Found.No context on this server matched or handled this request.
新手在sae部署程序容易忽略的一个细节
小结getBytes()默认编码导致的xml字符串中出现乱码
VMware Workstation不可恢复的错误:(vmui)
Mysql在windows下和linux下对表名大小写默认要求的一个细节
CSS
第二次代码和思路
Copyright © 2011-2022 走看看