为什么要有JAVA【锁】
2021-03-19 18:25
标签:mic http code 系统 知识 参考 增加 为什么 操作 考虑一个银行账户数组account[10], 两个银行账户account[0],和account[1]需要同时对一个银行账户account[2]进行转账,转账金额不一致 每个账户初始金额为5000。 两个账户同时执行指令 account[2] += amout; 该指令在操作系统中处理如下: (1) 将account[2]从内存中中读取到寄存器中 (2)增加amount (3)重新加载到内存中 在实际操作中,假定线程1执行完(1)(2)后被打断,线程2执行(1)(2)(3),线程1 执行(3),线程2所做被线程1 覆盖。具体如下图所示: 但是有了锁之后,将转账代码用锁包住,可以保证其他线程无法在同一时间访问该资源,自然也就无法出现上述情况。 参考文献:《java核心技术 卷1 基础知识》 为什么要有JAVA【锁】 标签:mic http code 系统 知识 参考 增加 为什么 操作 原文地址:https://www.cnblogs.com/coder-dai/p/13940824.html