锁存器和栅栏

锁存器和栅栏

提示

如何编程测试接口在不同并发下的性能?

在平时开发中,有时候,我们需要自己编写代码,测试某个接口在不同并发下的性能,比如测试在N个(N可以是100、200等任意数)接口请求并发执行时接口的响应时间、QPS等。为了模拟接口的并发请求,我们需要用到多线程。除此之外,线程之间的协调执行,还需要用到本节要讲的CountDownLatch和CyclicBarrier。接下来,我们就结合这个需求的开发,详细讲解一下CountDownLatch和CyclicBarrier的用法以及实现原理。


Mr.ZhangJava多线程同步工具类大约 9 分钟
信号量

信号量

提示

如何使用信号量来限制并发执行某个接口的线程数?

信号量是并发编程中的一个重要概念,JUC提供了Semaphore类来实现信号量。信号量用来限制临界区和共享资源的并发访问。使用互斥锁,临界区和共享资源同时只能被一个线程访问;使用信号量,临界区和共享资源同时可以被多个线程访问。因此,信号量也可以看做是一种共享锁,其底层也是基于AQS实现的。


Mr.ZhangJava多线程同步工具类大约 10 分钟
条件变量

条件变量

提示

为什么使用条件变量之前要先加锁?

互斥和同步是多线程要解决的两个核心问题,互斥依靠互斥锁来解决,其中包含synchronized、Lock、CAS、原子类、累加器等。同步依靠同步工具来解决,其中包括条件变量、信号量、CountDownLatch、CyclicBarrier等。在前面几节,我们已经对互斥锁做了详细讲解,在接下来的几节,我们详细讲解同步工具。


Mr.ZhangJava多线程同步工具类大约 16 分钟