Java中的并发控制:Locks、Synchronized块和方法

原创 迷南。 2024-12-11 19:06 115阅读 0赞

在Java中,线程间的并发控制是通过锁(Lock)机制来实现的。主要有以下几种类型的锁:

  1. 独占锁 (ReentrantLock):

    • 独占模式:一次只有一个线程可以获取锁。
    • 可重入:如果一个线程已经获得了一个锁,并且在没有释放这个锁的情况下再次进入临界区,那么它就可以重入当前已获得的锁。
  2. 共享锁 (Lock):

    • 共享模式:允许多个线程同时持有锁,但只有一个线程可以获取并保持独占锁。

使用这些锁,你可以通过synchronized关键字来实现对代码块或方法的并发控制:

  1. // 示例1:synchronized块
  2. public class Counter {
  3. private int count;
  4. public synchronized void increment() {
  5. count++;
  6. }
  7. public synchronized int getCount() {
  8. return count;
  9. }
  10. }
  11. // 示例2:synchronized方法
  12. public class ThreadSafeCounter {
  13. private int count;
  14. public synchronized void increment() {
  15. count++;
  16. }
  17. public synchronized int getCount() {
  18. return count;
  19. }
  20. }

以上就是在Java中通过Locks实现并发控制以及如何使用synchronized关键字来同步代码块或方法。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,115人围观)

还没有评论,来说两句吧...

相关阅读