摘要: 一、什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一 阅读全文
posted @ 2021-06-16 22:53 hanease 阅读(553) 评论(0) 推荐(0) 编辑
摘要: AQS(AbstractQueuedSynchronizer)是Java众多锁以及并发工具的基础类,底层采用乐观锁,大量采用CAS操作保证其原子性,并且在并发冲突时,采用自旋方法重试。实现了轻量高效的获取锁。 1. AQS的关注点ReentrantLock中使用到了AQS高并发组件,用它来维护锁的状 阅读全文
posted @ 2021-06-16 22:37 hanease 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 为什么要有内存模型 在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。 内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算 阅读全文
posted @ 2021-06-16 22:05 hanease 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 一、 什么是进程、线程?线程和进程的区别?1. 进程当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序。进程是操作系统进行资源分配和调度的一个独立单位。进程的三个特征: 独立性独立存在的实体,每个进程都有自己独立私有的一块内存空间。动态性程序只是一个静态的指令集合,而进程是一个正在 阅读全文
posted @ 2021-06-16 21:56 hanease 阅读(127) 评论(0) 推荐(0) 编辑