解决Java多线程同步问题:互斥锁实例

原创 柔光的暖阳◎ 2024-10-10 15:51 194阅读 0赞

在Java中,互斥锁是一种同步原语,用于保护共享资源免受并发访问的影响。当一个线程获得一个互斥锁的锁定时,其他线程将无法获得该锁,直到第一个线程释放锁。

以下是一个互斥锁(独占锁)的简单实例:

  1. import java.util.concurrent.locks.Lock;
  2. import java.util.concurrent.locks.ReentrantLock;
  3. public class MutexExample {
  4. private final Lock lock = new ReentrantLock();
  5. public void synchronizedMethod() {
  6. try {
  7. // 获取锁
  8. lock.acquire();
  9. // 在获得锁后,你可以执行共享资源的操作
  10. System.out.println("Synchronized method is running...");
  11. // 释放锁
  12. lock.release();
  13. } catch (InterruptedException e) {
  14. e.printStackTrace();
  15. }
  16. }
  17. public static void main(String[] args) {
  18. MutexExample example = new MutexExample();
  19. new Thread(() -> example.synchronizedMethod())).start();
  20. }
  21. }

在这个例子中,synchronizedMethod()是一个同步方法,它会获取并释放一个互斥锁。在主线程的main()函数中,我们创建了一个线程来执行这个同步方法,这样就实现了多线程之间的互斥控制。

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

发表评论

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

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

相关阅读