2 curiouslearnerdhh curiouslearnerdhh 于 2014.12.18 21:06 提问

java 抢票、库存量功能

想做一个库存量或者说抢票这样的类似功能

每购买一个,库存量-1 ,我的思路:
synchronize(clazz ){ //加锁,线程安全
int size = selectTotolSize(id); //得到库存量
if(size > 0){ //库存量大于0
size --;
}
updateNum(size) ; //更新库存量
}
请问思路可以吗??因为大量的修改数据库的操作,效率我不知道怎么样??
还是加一个缓存,先把库存量保存,一定时间再修改数据库??
求各位大神指点!!感激不尽!!

3个回答

raylee2007
raylee2007   2014.12.24 19:14
已采纳

如果你们的网站上面只有一个服务器,其实是没有问题的,之前我也曾经处理过类似问题,但是,如果有多台服务器,这个时候就需要考虑到分布式
具体可以参考http://blog.csdn.net/tannafe/article/details/6123412

caozhy
caozhy   Ds   Rxr 2014.12.19 12:02

如果你只是做一个习作,那么无可厚非,但是如果你真的打算做一个这样的系统,仅仅是在应用层线程并发以及同步,这种程序是毫无伸缩性可言的。换一句话说,这种程序根本没用。因为绕来绕去除了徒增程序复杂度以外,还是没法把程序扩展到多个服务器上。

curiouslearnerdhh
curiouslearnerdhh 恩恩,不是一个习作,是电子商务一个网站的功能,商品可以设置库存量,还有抢红包的功能,这和抢票系统就非常类似了,也要控制数量,现在不知道怎么实现,如果用户量大的话,怎么才是最好的方案?谢谢
大约 3 年之前 回复
rui888
rui888   Ds   Rxr 2014.12.19 17:20

你看看这个。
如果是并发系统的话那就另说了。

curiouslearnerdhh
curiouslearnerdhh 电子商城的一个功能,可以抢优惠券,要控制优惠券的数量,不知道怎么实现性能好,求指点
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!