Java 同步(易忘)

同步主要从java内容模型中提到的比较多点
*
synchronizad
*
volatile

每个线程都有自己的工作内存, 而线程是不能直接操作主内存。主内存的变量属于共享变量, 线程需要使用主线程的变量时, 需要先拷贝一份到自己的工作线程中, 自己操作完了再拷贝到主线程中进行同步。
如果多个线程都使用了主线程中的一个共享变量的话, 都复制了主线程变量到自己的工作线程, 每个工作线程是不可见的。 所以你并不知道其他工作线程对其做了什么修改。 造成了工作线程对同一个变量有不同的值的问题。

synchronizad: 是给运行的方法等加上了一把锁(一个标签), 当一个工作线程在运行时发现这些代码锁上了, 就会被挂起, 等待其他工作线程使用完毕后再运行。
volatile: 是一旦变量改变了就会通知去修改主内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值