线程同步
文章平均质量分 60
流水伊旧
这个作者很懒,什么都没留下…
展开
-
CountDownLatch、CyclicBarrier、Semaphore三大常用类详解
CountDownLatch类似于一个减法计数器:CountDownLatch(int count) 构造方法初始一个计数值public class CountDownLatchTest { public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(6); //计数值为6 for原创 2021-03-02 22:43:42 · 112 阅读 · 0 评论 -
BlockingQueue阻塞队列详解
BlockingQueue 和 SynchronousQueueBlockingQueueBlockingQueue的四组API:① add 和 removeadd(E e) :将指定的元素插入到此队列中,成功则返回true,队列满了插入失败则抛出异常java.lang.IllegalStateException: Queue fullremove() :返回并删除队首元素,如果队列为空删除失败则抛出异常java.util.NoSuchElementExceptionelement() :返原创 2021-03-03 20:31:33 · 356 阅读 · 4 评论 -
线程同步 synchronized 和 Lock 的区别
synchronized 和 Lock 的区别:① synchronized是内置的Java关键字,Lock是一个接口② synchronized无法判断是否获取到锁,Lock可以判断是否获取到锁③ synchronized会自动释放锁,Lock必须要手动释放锁,否则可能会死锁!④ synchronized当有两个线程,其中一个得到锁,另一个线程则死等,Lock不一定会死等⑤ synchronized是可重入锁 不可中断的 非公平锁,Lock是可重入锁 可以判断锁 可设为公平锁⑥ synchro原创 2021-03-01 21:53:35 · 303 阅读 · 4 评论 -
多线程详解(三)——线程同步
一. 什么是线程同步处理多线程问题时,当多个线程访问同一对象,并且某些线程还想修改这个对象时,就需要线程同步。线程同步其实是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面的线程使用完毕,下一个线程再使用。线程同步的条件:等待队列 和 锁如果不进行线程同步,处理多线程问题时会出现线程不安全的情况:public class TestThread { public static void main(String[] args) { Test te原创 2021-02-20 15:41:31 · 202 阅读 · 3 评论