并发编程
Simon西蒙
这个作者很懒,什么都没留下…
展开
-
Java并发编程之synchronized关键字解析
Synchronized的应用 synchronized关键字最主要有以下3种应用方式: 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 Synchronized的作用 原子性:确保线程互斥的访问同步代码; 可见性:保证共享变量的修改能够及时可见,其实是通过Java内存模型中的 “对一个变量unlock操作之前,必须要同步到主内存中原创 2020-08-18 15:20:11 · 226 阅读 · 0 评论 -
Java并发编程之volatile关键字解析
前言 在并发编程中,我们主要围绕着以下三个问题: 原子性问题:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 可见性问题:当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 有序性问题:程序执行的顺序按照代码的先后顺序执行 要想保证并发程序能正确的运行,必须要保证以上三个问题,只要有一个没保证,就可能会发生错误。 JAVA内存模型 Java内存模型规定所有的变量存储在主内存中,每个线程都有自己的工作内存。线程对变量的所有操作都原创 2020-08-12 16:17:39 · 267 阅读 · 0 评论