不同线程读共享资源
1. 不同线程读共享资源
当有一个static变量属于类.
我们开启了两个线程对该变量进行修改,
但是由于分时系统的分片操作,
可能出现修改后的静态变量还没有更新到jvm内存中的情况(所以有volatile强制更新到内存的关键字)
| 临界区: 一段代码块中出现对共享资源的读写操作 |
![]() |
|---|---|
| 竞态条件 | 多个线程在没有正确同步的情况下同时访问共享数据, 导致程序执行结果依赖于线程的调度顺序. |
| 解决竞态情况的方法 | |
|---|---|
1.synchronized: 利用对象锁确保了临界区代码的原子性(对外不可分割)
|
Synchronized(对象/类.class){
} 错误情况: 对于共享变量使用两把锁进行访问
|


