Java多线程
chenzihao36
知行合一
展开
-
高并发编程常用容器和J.U.C包常用工具介绍
J.U.C包中一些工具的简介 一、HashMap原创 2020-06-29 17:15:17 · 310 阅读 · 0 评论 -
两个例子解释线程的可见性和原子性问题
两个例子解释线程的可见性和原子性问题 多线程情况下,会出现两种线程安全的问题:可见性和原子性问题。具体针对这两种多线程情况下出现问题的解决方案如下: (1)可见性: //用volatile关键字屏蔽CPU缓存和指令重排序,保证线程可见性 public class VolatileTest { boolean flag = true;//用这个会导致thread1线程不能读到被修改的flag值,thread1线程的循环永远不会结束 // volatile boolean flag = true;原创 2020-06-24 11:49:53 · 251 阅读 · 0 评论 -
线程池原理与API使用介绍
线程池原理与API使用简介 一、线程池原理 首先我们要明确为什么用多线程?是不是线程越多就越好?随着现代多核CPU的发展,原创 2020-06-23 16:29:36 · 468 阅读 · 0 评论 -
synchronized关键字锁升级原理
一、Java中锁的相关概念 自旋锁:指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断地判断锁是否能获取成功,直到获取到锁。(CAS操作中就用到了自旋锁) 乐观锁:它假定不会产生冲突,在修改数据时如果发现数据和之前获取的不一样,则读取最新的数据,修改后(CAS操作)重试。 悲观锁:它假定会发生冲突,同步所有对数据的相关操作,从读数据就开始上锁。(如synchro...原创 2019-10-13 23:31:32 · 205 阅读 · 0 评论