随笔分类 -  Java多线程与并发

Java多线程锁
摘要:1.简述 锁:把需要的代码块,资源或数据锁上,只允许一个线程去操作,保证了并发时共享数据的一致性。 2.公平锁&非公平锁 公平锁:多个线程按照申请锁的顺序去获得锁,所有线程都在队列里排队,这样就保证了队列中的第一个先得到锁。 非公平锁:多个线程不按照申请锁的顺序去获得锁,而是同时直接去尝试获取锁(插 阅读全文

posted @ 2021-07-01 14:06 码农记录 阅读(832) 评论(0) 推荐(0)

Exchanger类
摘要:1.简述 Exchanger是适用在两个线程之间数据交换的并发工具类,它的作用是找到一个同步点,当两个线程都执行到了同步点(exchange方法)之后(有一个没有执行到就一直等待,也可以设置等待超时时间),就将自身线程的数据与对方交换。 Exchanger使用场景: 线程间交互数据。 2.Excha 阅读全文

posted @ 2020-12-26 10:53 码农记录 阅读(215) 评论(0) 推荐(0)

Semaphore类
摘要:1.简述 Semaphore通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。 Semaphore对于信号量的控制是基于AQS(AbstractQueuedSynchronizer)来做的。Semaphore有一个内部类Sync继承了AQS。而且S 阅读全文

posted @ 2020-12-25 15:14 码农记录 阅读(207) 评论(0) 推荐(0)

Cyclicbarrier类
摘要:1.简述 CyclicBarrier字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时候,屏障才会开门。所有被屏障拦截的线程才会运行。 和CountdownLatch比较类似,但CyclicBarrier更 阅读全文

posted @ 2020-12-23 15:06 码农记录 阅读(129) 评论(0) 推荐(0)

CountDownLatch类
摘要:1.简述 CountDownLatch是Java1.5之后引入的Java并发工具类(闭锁的一个实现),放在java.util.concurrent包下。用给定的计数初始化CountDownLatch。由于调用了countDown方法,所以在当前计数到达零之前,await方法会一直受阻塞。之后,会释放 阅读全文

posted @ 2020-12-22 16:58 码农记录 阅读(208) 评论(0) 推荐(0)

volatile修饰符
摘要:1.简述 volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile 阅读全文

posted @ 2020-12-18 14:55 码农记录 阅读(706) 评论(0) 推荐(0)

ThreadLocal类说明
摘要:1.简介 ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。 ThreadLocal是一个关于创建线程局部变量的类。 通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程则无法访问和修改。相当于线程的priv 阅读全文

posted @ 2020-12-16 14:19 码农记录 阅读(219) 评论(0) 推荐(0)

导航