资深java乘风驾乘系列一
在多线程编程中我们会遇到很多需要使用线程同步机制去解决的并发问题,而这些同步机制就是多线程编程中影响正确性和运行效率的重中之重。这不禁让我感到好奇,这些同步机制是如何实现的呢?好奇心是进步的源泉,就让我们一起来揭开同步机制源码的神秘面纱吧。通过这篇文章我们将可以了解到ReentrantLock和CountDownLatch两个常用同步类的源代码实现,并且掌握阅读其他基于AQS实现的同步工具类源码的能力,甚至可以利用AQS写出自己的同步工具类。阅读这篇文章需要了解基本的线程同步机制,有兴趣的读者可以参考一下这篇文章《多线程中那些看不到的陷阱》。下面的代码是CountDownLatch中AQS的子类Sync的定义,Sync是CountDownLatch类中的一个内部类。