synchronized关键字:使用synchronized关键字可以给方法或代码块加锁,确保同一时间只有一个线程可以访问被锁定的代码,其他线程需要等待。
ReentrantLock:ReentrantLock是显式锁,通过lock()和unlock()方法来控制锁的获取和释放,可以实现更灵活的锁定和释放机制。
Semaphore:Semaphore是一种计数信号量,用来控制同时访问资源的线程个数,可以实现多个线程同时访问某一个资源的场景。
CountDownLatch:CountDownLatch是一种同步工具类,用来控制一个或多个线程需要等待其他线程执行完毕后再继续执行。
CyclicBarrier:CyclicBarrier也是一种同步工具类,用来控制多个线程需要等待其他线程执行完毕后再同时继续执行。
LockSupport:LockSupport类是一种基于线程的阻塞原语,可以实现线程的阻塞和唤醒操作。
Condition:Condition是Lock接口提供的条件对象,可以用来实现线程之间的等待和通知机制。