第三篇(1) : synchonized解决原子性问题
解决 原子 第三篇 问题
2023-09-27 14:19:46 时间
前言
上一篇我们介绍Java内存模型来处理有序性,可见性的问题。但是,还有一个原子性的问题,没有处理,那么针对原子性的问题我们该怎么处理呢?我们知道在并发编程中的原子性问题主要原因就是,一条高级语句可能会被分成多个CPU指令,在指令执行完之后发生了线程切换,中间状态被暴露造成原子性问题。
锁
现实生活中,我们用自己的锁来保护自己的财产,买门票来锁定演唱会的座位。
同理,在并发编程的世界里我们同样可以引入锁的概念来锁住需要保护的资源。只有获得了锁的线程才能操作资源。
synchronized
Java自带的锁工具是synchronized,用synchronized修饰的代码就相当于上了锁。上了锁就需要互斥执行。即:同一时刻只能有一个线程执行。
我们将一段需要互斥执行的代码称之为临界区。
例如:
synchronized (this) {
this.a =
相关文章
- [sh]top添加到crontab不生效问题解决
- vue.js解决刷新404找不到页面问题
- 解决 win10 pycurl安装出错 Command "python setup.py egg_info" failed with error code 10 编译安装包 安装万金油
- tensorflow import 没找到cudnn库问题解决
- tomat startup.bat 日志乱码问题解决
- jmeter乱码问题解决
- VS2017 C++代码报错:E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体 解决方法
- Ubuntu无法进入图形化界面(报错/dev/sda1:clean的解决)
- 使用jaxb进行xml到bean的转换(尝试解决空值不显示问题)
- 自制MPLS解决路由黑洞实验
- 已解决java.lang.NoClassDefFoundError异常的正确解决方法,亲测有效!!!已解决java.lang.NoClassDefFoundError异常的正确解决方法,亲测有效!!!
- Android Studio新建项目出错如何解决
- Python发送Http请求时,提交中文或者符号中文编码问题的解决方法
- 解决中文乱码的问题
- localhost: Warning: $HADOOP_HOME is deprecated.问题解决