21xrx.com
2024-11-05 22:39:36 Tuesday
登录
文章检索 我的文章 写文章
Java开发工程师面试题:如何实现线程同步
2023-06-15 11:27:04 深夜i     --     --
synchronized关键字可以锁定一个代码块或方法 保证同一时刻只有一个线程访问

当多个线程同时访问共享资源时,容易出现数据安全问题。Java提供了多种方式实现线程同步,下面介绍几种常用的方式。

1. synchronized关键字

synchronized关键字可以锁定一个代码块或方法,保证同一时刻只有一个线程访问。

示例代码:


public synchronized void method()

  //需要同步的代码块

2. ReentrantLock类

ReentrantLock类也可以实现线程同步,使用方式类似于synchronized关键字,但提供了更多的灵活性和扩展性。

示例代码:


private ReentrantLock lock = new ReentrantLock();

public void method(){

  lock.lock(); //加锁

  try

    //需要同步的代码块

   finally {

    lock.unlock(); //释放锁

  }

}

3. wait()和notify()方法

wait()方法可以使线程暂停执行,直到其他线程调用notify()方法来唤醒该线程。可以通过wait()和notify()方法实现线程间的协调和通信。

示例代码:


public synchronized void method(){

  while(!condition){//条件不满足等待

    try{

      wait();

    }catch (Exception e){

      e.printStackTrace();

    }

  }

  //执行任务

  condition = false;

  notify(); //唤醒其他等待线程

}

关键词:Java开发、线程同步、synchronized关键字、ReentrantLock类、wait()、notify()方法。

  
  
下一篇: 和filter

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章