并发与高并发解决方案学习笔记
第三章 - 并发编程与线程安全
3-1 案例环境初始化
3-2 案例准备工作
3-3 并发模拟 - 工具
- PostMan: Http请求工具
- Apach Bench (AB): Apach附带的工具,测试网站性能
- JMeter: Apache组织开发的压力测试工具
- 代码: Semaphore、CountDownLatch等
3-4 并发模拟 - 代码
CountDownLatch介绍
CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。
CountDownLatch原理
CountDownLatch是通过一个计数器来实现的,计数器的初始化值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就相应得减1。当计数器到达0时,表示所有的线程都已完成任务,然后在闭锁上等待的线程就可以恢复执行任务。
Semaphore介绍
Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。Semaphore是一种计数信号量,用于管理一组资源,内部是基于AQS的共享模式。它相当于给线程规定一个量从而控制允许活动的线程数。