随笔分类 -  多线程与并发

摘要:动画演示:https://www.scss.tcd.ie/Jeremy.Jones/vivio/caches/MESIHelp.htm 一、缓存的概念 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于 阅读全文
posted @ 2020-01-02 15:16 byebai95 阅读(241) 评论(0) 推荐(0) 编辑
摘要:一、CAS 概念 CAS ,全称 Compare And Swap(比较与交换),解决多线程并行情况下使用锁造成性能损耗的一种机制。 实现思想 CAS(V、A、B) ,V为内存地址,A为预期原值,B 为新值。如果内存地址的值与预期原址相匹配,那么将该位置值更新为新值。否则说明已经被其他线程更新,处理 阅读全文
posted @ 2019-12-02 19:46 byebai95 阅读(1264) 评论(0) 推荐(0) 编辑
摘要:一、cpu cache 模型 cpu 与 主存的速度差异因此产生了缓存。现在缓存的数量增加到3 级,最靠近cpu 的 称为 L1,然后依次是 L2 ,L3 由于程序指令与数据的行为和热点分布差异, L1 Cache 分为 L1i 和 L1d 。 缓存提高了吞吐力,单引入了缓存不一致问题。 比如: i 阅读全文
posted @ 2019-11-30 16:03 byebai95 阅读(245) 评论(0) 推荐(0) 编辑
摘要:为什么使用线程池 平时我们在使用多线程的时候,通常都是架构师配置好了线程池的 Bean,我们需要使用的时候,提交一个线程即可,不需要过多关注其内部原理。 在学习一门新的技术之前,我们还是先了解下为什么要使用它,使用它能够解决什么问题: 创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程 阅读全文
posted @ 2019-11-28 20:50 byebai95 阅读(188) 评论(0) 推荐(0) 编辑
摘要:Java 中的锁 阻塞锁、可重入锁、读写锁、互斥锁、悲观锁、乐观锁、公平锁、偏向锁、对象锁、线程锁、锁粗化、锁消除、轻量级锁、重量级锁、信号量、独享锁、共享锁、分段锁 一、常见的锁 synchronized 和 Lock synchronized 是一个: 非公平、悲观、独享、互斥、可重入的轻量级锁 阅读全文
posted @ 2019-08-21 11:54 byebai95 阅读(333) 评论(0) 推荐(0) 编辑
摘要:一、进程与线程 程序:一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本 进程: 是程序的一次动态执行,对应着从代码的加载、执行、结束的完整过程,是有生命周期的。 进程包括就绪状态、执行状态、阻塞状态 线程:线程是进程的一个实体、是CPU 调度和 阅读全文
posted @ 2019-03-15 10:36 byebai95 阅读(174) 评论(0) 推荐(0) 编辑
摘要:转载出处:http://www.cnblogs.com/waterystone/ 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程 阅读全文
posted @ 2018-12-11 09:28 byebai95 阅读(216) 评论(0) 推荐(0) 编辑
摘要:Java中的锁分类 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁 阅读全文
posted @ 2018-11-29 10:55 byebai95 阅读(251) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示