java中举个线程安全的例子
答案:2 悬赏:20 手机版
解决时间 2021-02-08 08:34
- 提问者网友:疯子也有疯子的情调
- 2021-02-08 05:19
java中举个线程安全的例子
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-02-08 05:38
1 public void getMoney( int money)
2 Card card = db.queryCardByid(id);
3 if(card.getMoney>=money){
4 card.send(money);
5 card.updateMoney(card.getMoney-money);
6 }
这个是简单的取钱程序,判断卡中的金额是否大于取钱的金额,如果大于就取钱。
在多线程的程序里,就存在线程安全的问题。
比如 卡中100元,两个线程都去取 60元,由于线程是并发的,很有可能第一个线程执行到第4行的位置时(好比你打断点),第二个线程进来,判断卡中还有100元,然后也能进来,这样就会取出120元钱。
2 Card card = db.queryCardByid(id);
3 if(card.getMoney>=money){
4 card.send(money);
5 card.updateMoney(card.getMoney-money);
6 }
这个是简单的取钱程序,判断卡中的金额是否大于取钱的金额,如果大于就取钱。
在多线程的程序里,就存在线程安全的问题。
比如 卡中100元,两个线程都去取 60元,由于线程是并发的,很有可能第一个线程执行到第4行的位置时(好比你打断点),第二个线程进来,判断卡中还有100元,然后也能进来,这样就会取出120元钱。
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-08 06:59
比如这个就是阻塞方法
scaner s = new scaner(system.in)
string str = s.next();就是就是需要等, 必须等到响应才会继续向下走
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯