Loading

上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 1.概念 读写锁的概念其实就是共享锁和排他锁,读锁就是共享锁,写锁就是排他锁。 2.使用 import java.util.Random; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWr 阅读全文
posted @ 2022-01-24 23:42 ZT丶 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1.概念 Phaser它就像是结合了CountDownLatch和CyclicBarrier,翻译一下叫阶段。Phaser是按照不同的阶段来对线程进行执行,就是它本身是维护着一个阶段这样的一个成员变量,当前我是执行到哪个阶段,是第0个,还是第1个阶段啊等等,每个阶段不同的时候这个线程都可以往前走,有 阅读全文
posted @ 2022-01-24 23:41 ZT丶 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 1.概念 Semaphore是计数信号量。Semaphore管理一系列许可。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可,这可能会释放一个阻塞的acquire方法。然而,其实并没有实际的许可这个对象,Semaphore只是维持了一个可获得 阅读全文
posted @ 2022-01-24 23:40 ZT丶 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1.概念 循环栅栏,一个可循环利用的屏障,它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBar 阅读全文
posted @ 2022-01-24 23:39 ZT丶 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1.ReentrantLock简介 JDK中独占锁的实现除了使用关键字synchronized外还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵 阅读全文
posted @ 2022-01-24 23:38 ZT丶 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 1.概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。每一个线程完成自己任务后 阅读全文
posted @ 2022-01-24 23:38 ZT丶 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1.LongAdder简介 LongAdder效率高的原因 LongAdder的内部做了一个分段锁,类似于分段锁的概念。在它内部的时候,会把一个值放到一个数组里,比如说数组长度是4,最开始是0,1000个线程,250个线程锁在第一个数租元素里,以此类推,每一个都往上递增算出来结果在加到一起。 阅读全文
posted @ 2022-01-24 23:37 ZT丶 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 1.Java中的8大原子操作 lock:主内存,标识变量为线程独占 unlock:主内存,解锁线程独占变量 read:主内存,读取内存到线程缓存(工作内存) load:工作内存,read后的值放入线程本地变量副本 use:工作内存,传值给执行引擎 assign:工作内存,执行引擎结果赋值给线程本地变 阅读全文
posted @ 2022-01-23 22:38 ZT丶 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 1. 基本原理 CAS(Compare-And-Swap)指令是并行程序设计最基础的基石。 有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。CAS是一种典型的乐观锁, 假设不会发生并发冲突,只在提交操作时检查是否违反数据完整 阅读全文
posted @ 2022-01-23 22:24 ZT丶 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1.synchronized用法 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象 修改一个静态的方法,其作用的范围是整个静态方法,作用 阅读全文
posted @ 2022-01-23 22:20 ZT丶 阅读(77) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页