学堂 学堂 学堂公众号手机端

在Java中,可以使用synchronized关键字或者ReentrantLock类来实现多线程的锁机制。 使用synchronized关键字

lewis 2年前 (2023-10-11) 阅读数 10 #技术

在Java中,可以使用synchronized关键字或者ReentrantLock类来实现多线程的锁机制。

  1. 使用synchronized关键字:
publicclassMyObject{ privateintcount=0; publicsynchronizedvoidincrement(){ count++; } publicsynchronizedvoiddecrement(){ count--; } }

在上面的例子中,使用synchronized关键字修饰了increment()和decrement()方法,这样在调用这两个方法时会对MyObject对象进行加锁,确保同一时刻只有一个线程能够访问这两个方法。

  • 使用ReentrantLock类:
  • importjava.util.concurrent.locks.Lock; importjava.util.concurrent.locks.ReentrantLock; publicclassMyObject{ privateintcount=0; privateLocklock=newReentrantLock(); publicvoidincrement(){ lock.lock(); try{ count++; }finally{ lock.unlock(); } } publicvoiddecrement(){ lock.lock(); try{ count--; }finally{ lock.unlock(); } } }

    在上面的例子中,使用ReentrantLock类来创建一个锁对象lock,并在increment()和decrement()方法中使用lock()方法进行加锁,使用unlock()方法进行解锁。这样可以更加灵活地控制锁的获取和释放。


    版权声明

    本文仅代表作者观点,不代表博信信息网立场。

    热门