想做一个库存量或者说抢票这样的类似功能
每购买一个,库存量-1 ,我的思路:
synchronize(clazz ){ //加锁,线程安全
int size = selectTotolSize(id); //得到库存量
if(size > 0){ //库存量大于0
size --;
}
updateNum(size) ; //更新库存量
}
请问思路可以吗??因为大量的修改数据库的操作,效率我不知道怎么样??
还是加一个缓存,先把库存量保存,一定时间再修改数据库??
求各位大神指点!!感激不尽!!
如果你们的网站上面只有一个服务器,其实是没有问题的,之前我也曾经处理过类似问题,但是,如果有多台服务器,这个时候就需要考虑到分布式
具体可以参考http://blog.csdn.net/tannafe/article/details/6123412
如果你只是做一个习作,那么无可厚非,但是如果你真的打算做一个这样的系统,仅仅是在应用层线程并发以及同步,这种程序是毫无伸缩性可言的。换一句话说,这种程序根本没用。因为绕来绕去除了徒增程序复杂度以外,还是没法把程序扩展到多个服务器上。
你看看这个。
如果是并发系统的话那就另说了。