第三篇(1) : synchonized解决原子性问题

本文详细探讨了Java中的synchronized关键字如何处理并发编程中的原子性问题。通过实例解释了synchronized修饰实例方法、代码块以及静态方法时的作用,阐述了锁与受保护资源的1:N关系,并讨论了如何保护多个资源,尤其是处理相关联资源的并发操作。文章结尾总结了synchronized的关键应用和注意事项。
摘要由CSDN通过智能技术生成

前言

上一篇我们介绍Java内存模型来处理有序性,可见性的问题。但是,还有一个原子性的问题,没有处理,那么针对原子性的问题我们该怎么处理呢?我们知道在并发编程中的原子性问题主要原因就是,一条高级语句可能会被分成多个CPU指令,在指令执行完之后发生了线程切换,中间状态被暴露造成原子性问题。

现实生活中,我们用自己的锁来保护自己的财产,买门票来锁定演唱会的座位。
同理,在并发编程的世界里我们同样可以引入锁的概念来锁住需要保护的资源。只有获得了锁的线程才能操作资源。

synchronized

Java自带的锁工具是synchronized,用synchronized修饰的代码就相当于上了锁。上了锁就需要互斥执行。即:同一时刻只能有一个线程执行。
我们将一段需要互斥执行的代码称之为临界区
例如:

   synchronized (this)</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农飞哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值