求一多线程问题(分布式高并发环境下如何实现)

hi_kevin 2012-03-02 02:35:31


问题如下:

每个用户都可以拿苹果,但最多拿多少个由自己圈里的数字决定,
并且拿的个数不能超过上级剩余的个数,直到拿完为止

举例说明:如图中A、B、C、D、B1所示

例子1:比如A拿5个苹果,则B、C、D、相应都要减少5个,即B最多能拿20,C最多35,D最多95



例子2:比如C中此时剩余12个苹果,其余28个被其下面的其它用户或者自己拿走,此时 如果A(10个)和B1(5个)同时
拿苹果,如果先处理的B1则提示A用户剩余7个,如果先处理的A则提示B1只能拿两个

我的初步想法是每个人拿的时候把相应的整条线加锁,等执行完后释放锁,
但如果把整条线全部锁住后的效率问题,欢迎大家指教
...全文
282 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hi_kevin 2012-03-05
  • 打赏
  • 举报
回复
由于该帖子没有图片 现在重新发了帖子
新地址:http://topic.csdn.net/u/20120305/09/5224143a-1eca-4610-be83-43f6254bd3fb.html
谢谢楼上的回答
hi_kevin 2012-03-02
  • 打赏
  • 举报
回复
不好意思 刚才图片格式貌似不正确,新图片地址
http://user.qzone.qq.com/1113911681/infocenter#!app=4
cong19900904 2012-03-02
  • 打赏
  • 举报
回复
没明白!图片看不到,不过我觉得对访问某个对象的范围加锁就可以了
qybao 2012-03-02
  • 打赏
  • 举报
回复
木有看到图啊
LZ是要控制各线程的优先级别吗?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧