java并发-常识总结

原创
2019/12/14 16:06
阅读数 44

什么是原子操作?

原子操作不会被进程调度机制打断,从开始到结束能够完成而不被山下文切换。

long和double不是原子操作,因为64位。

读取的时候,分两步读取,需要多个指令,中间可能会发送上下文切换。

写的时候,分两步写,需要多个指令,中间可能会发生上下文切换。

什么样的操作是原子操作?

除去long和double类型的原始类型的纯粹的写和读操作是原子操作。

自增,自减为什么不是原子操作?

???

什么是线程安全?

如何保证线程安全?

什么是可见性?

什么是顺序一致性?

什么是Java内存模型?

Thread对象为何可以使用等于号判断是否相等?

什么是假共享?

这里的共享是指共享缓存,CPU有一级缓存,二级缓存等等,其实,CPU的指令同时在多个核心上执行,一方面会使用自己核心的高速缓存,还会使用共享的高速缓存。

当线程A访问了一个变量,那么这个变量就会驻村在高速缓存中,当线程B修改了这个变量,那么这个变量会同时修改到高速缓存和主存,当修改完成,线程A继续要访问这个变量,

那么线程A不得不再次从主存中访问。

这个后续继续增加理解。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部