青亭浅 2023-05-23 18:00 采纳率: 85.7%
浏览 12
已结题

关于#输出格式#的问题,如何解决?

假设某家银行每接受一次顾客的汇款,便可计算出当前汇款总额。若现有两个顾客,每人分3次、每次100元将钱汇入。试模拟该银行,输出格式如下:
顾客甲第1次存入100元,汇款总额100
顾客乙第1次存入100元,汇款总额200
顾客乙第2次存入100元,汇款总额300

img

为什么第一行数据输出两百

  • 写回答

1条回答 默认 最新

  • 创意程序员 2023-05-23 18:08
    关注

    你的 synchronized(this) 是用在线程里面的方法中,实际是限制线程内部的同步,线程间仍可以并行。同时启动两个线程,num=num+100几乎是同时执行,所以输出时会是200。可以将 int num 改为线程安全的比如 AtomicInteger num,线程内不再需要 synchronized(this)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 5月23日