synchronized疑问

synchronized疑问

save.start();
draw.start();
try {
    save.join();
    draw.join();
} catch (Exception e) {
    e.printStackTrace();
}

出现了先取款后存款的情况, 请问是否正常,  如何解决

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿满 2019-02-17 14:46:51

同学想说什么呢?建议同学描述清楚。祝:学习愉快~

  • 提问者 慕瓜8846638 #1
    已解决, 线程是随机的, save.start()和draw.start()的执行顺序与代码顺序无关
    2019-02-17 14:53:56
提问者 慕瓜8846638 2019-02-16 23:11:40

synchronized关键字保证共享对象b在同一时刻只能被一个线程访问,所以可以保证save和draw方法不会在运行还未结束时被打断。但是由于线程的执行顺序是随机的,所以两个方法的执行顺序也是随机的。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师