牛客java专项练习-day19_代码块

 

 牛客java专项练习-day19_代码块_02

 

 牛客java专项练习-day19_线程同步_03

 

 牛客java专项练习-day19_线程同步_04

 

 牛客java专项练习-day19_多线程_05

 

 牛客java专项练习-day19_多线程_06

 

 牛客java专项练习-day19_代码块_07

 

 牛客java专项练习-day19_数据_08

 

 牛客java专项练习-day19_多线程_09

 

 牛客java专项练习-day19_代码块_10

 

 牛客java专项练习-day19_多线程_11

 

 牛客java专项练习-day19_代码块_12

 

 牛客java专项练习-day19_可见性_13

 

 牛客java专项练习-day19_线程同步_14

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且只能修改变量,而synchronized可以修饰方法,以及代码块。
多线程访问volatile不会发生阻塞,而synchronized会出现阻塞
volatile能保证数据的可见性,但不能保证原子性;而synchronized可以保证原子性,也可以间接保证可见性,因为它会将私有内存和公共内存中的数据做同步
关键字volatile解决的下变量在多线程之间的可见性;而synchronized解决的是多线程之间资源同步问题
牛客java专项练习-day19_可见性_15

 

 牛客java专项练习-day19_线程同步_16

 

 牛客java专项练习-day19_数据_17

 

 牛客java专项练习-day19_线程同步_18

 

 牛客java专项练习-day19_代码块_19

 

 牛客java专项练习-day19_可见性_20

 

 牛客java专项练习-day19_数据_21

 

 牛客java专项练习-day19_数据_22

 

 牛客java专项练习-day19_可见性_23

 

 牛客java专项练习-day19_数据_24

 

 牛客java专项练习-day19_多线程_25

 

 牛客java专项练习-day19_线程同步_26

 

 牛客java专项练习-day19_线程同步_27

 

 牛客java专项练习-day19_线程同步_28

 

 牛客java专项练习-day19_多线程_29

 

 牛客java专项练习-day19_数据_30

 

 牛客java专项练习-day19_数据_31

 

 牛客java专项练习-day19_可见性_32

 

 牛客java专项练习-day19_多线程_33

 

 牛客java专项练习-day19_线程同步_34

 牛客java专项练习-day19_多线程_35

 

 牛客java专项练习-day19_多线程_36

 

 牛客java专项练习-day19_代码块_37

 

 牛客java专项练习-day19_代码块_38

 

 牛客java专项练习-day19_线程同步_39

 

 牛客java专项练习-day19_线程同步_40