线程同步的方法

1使用synchronized关键字,比如在方法上加上synchronized,也就是给临界区加锁。

2使用JUCjava.util.concurrent工具类

 比如CountDownLatch减到一定数释放锁,主要方法有awaitcountDown方法

还有CyclicBarrier,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrierawait()方法。是增加的。

最后是Semaphore,信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制。简单的说就是抢车位,30个人来抢20个车位。就要进行资源互斥控制。主要方法有acquire()和release()方法。

原文地址:https://www.cnblogs.com/wl889490/p/12885274.html