在Java中,线程等待和并发编程可以通过使用synchronized关键字、wait()和notify()方法、Lock和Condition等来实现。
使用synchronized关键字:public class Example { private static Object lock = new Object(); public void doSomething() { synchronized(lock) { // 执行需要同步的操作 } }}使用wait()和notify()方法:public class Example { private static Object lock = new Object(); public void doSomething() { synchronized(lock) { try { lock.wait(); // 线程等待 } catch (InterruptedException e) { e.printStackTrace(); } } } public void notifyThread() { synchronized(lock) { lock.notify(); // 唤醒等待的线程 } }}使用Lock和Condition:import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Example { private final Lock lock = new ReentrantLock(); private final Condition condition = lock.newCondition(); public void doSomething() { lock.lock(); try { condition.await(); // 线程等待 } catch (InterruptedException e) { e.printStackTrace(); } finally { lock.unlock(); } } public void notifyThread() { lock.lock(); try { condition.signal(); // 唤醒等待的线程 } finally { lock.unlock(); } }}通过以上方法,可以实现线程等待和并发编程的结合,确保线程之间的协同工作和数据同步。


