自己做网站 搜索功能开发,亚马逊电商平台入口,论坛的网站制作,wordpress+中文站一、CountDownLatch,Semaphore的高频问题:
1.1 CountDownLatch是啥?有啥用?底层咋实现的?
CountDownLatch 本质上是一个计数器,用于协调多个线程之间的同步。主要应用场景是在多线程并行处理业务时,需要等待其他线程处理完再进行后续操作,例如合并结果或响应用户请求…一、CountDownLatch,Semaphore的高频问题:
1.1 CountDownLatch是啥?有啥用?底层咋实现的?
CountDownLatch 本质上是一个计数器,用于协调多个线程之间的同步。主要应用场景是在多线程并行处理业务时,需要等待其他线程处理完再进行后续操作,例如合并结果或响应用户请求。
用法:
在主线程中创建一个 CountDownLatch 对象,指定计数器的初始值。每个子线程在处理完任务后,调用 countDown 方法将计数器减1。主线程调用 await 方法,等待计数器归零后继续执行。底层实现:
基于 AQS(AbstractQueuedSynchronizer)实现。创建 CountDownLatch 时,指定的数值会赋值给 state 属性。子线程调用 countDown 方法时,state 减1。当 state 归零时,调用 await 方法挂起的线程会被唤醒。注意:CountDownLatch 不能重复使用,用完即销毁。
1.2 Semaphore是啥?有啥用?底层咋实现的?