上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 26 下一页
摘要: 本节,我们来探讨Java并发包中的各种队列。Java并发包提供了丰富的队列类,可以简单分为: 无锁非阻塞并发队列:ConcurrentLinkedQueue和ConcurrentLinkedDeque 普通阻塞队列:基于数组的ArrayBlockingQueue,基于链表的LinkedBlockin 阅读全文
posted @ 2020-02-26 00:16 Ivy_Xu 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 上节我们介绍了ConcurrentHashMap,ConcurrentHashMap不能排序,容器类中可以排序的Map和Set是TreeMap和TreeSet,但它们不是线程安全的。Java并发包中与TreeMap/TreeSet对应的并发版本是ConcurrentSkipListMap和Concu 阅读全文
posted @ 2020-02-25 23:26 Ivy_Xu 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 本节介绍一个常用的并发容器 - ConcurrentHashMap,它是HashMap的并发版本,与HashMap相比,它有如下特点: 并发安全 直接支持一些原子复合操作 支持高并发、读操作完全并行、写操作支持一定程度的并行 与同步容器Collections.synchronizedMap相比,迭代 阅读全文
posted @ 2020-02-25 23:07 Ivy_Xu 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 本节以及接下来的几节,我们探讨Java并发包中的容器类。本节先介绍两个简单的类CopyOnWriteArrayList和CopyOnWriteArraySet,讨论它们的用法和实现原理。它们的用法比较简单,我们需要理解的是它们的实现机制,Copy-On-Write,即写时拷贝或写时复制,这是解决并发 阅读全文
posted @ 2020-02-25 22:51 Ivy_Xu 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 上节我们介绍了显式锁,本节介绍关联的显式条件,介绍其用法和原理。显式条件也可以被称做条件变量、条件队列、或条件,后文我们可能会交替使用。 用法 基本概念和方法 锁用于解决竞态条件问题,条件是线程间的协作机制。显式锁与synchronzied相对应,而显式条件与wait/notify相对应。wait/ 阅读全文
posted @ 2020-02-25 22:40 Ivy_Xu 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 在66节,我们介绍了利用synchronized实现锁,我们提到了synchronized的一些局限性,本节,我们探讨Java并发包中的显式锁,它可以解决synchronized的限制。 Java并发包中的显式锁接口和类位于包java.util.concurrent.locks下,主要接口和类有: 阅读全文
posted @ 2020-02-25 22:13 Ivy_Xu 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 从本节开始,我们探讨Java并发工具包java.util.concurrent中的内容,本节先介绍最基本的原子变量及其背后的原理和思维。 原子变量 什么是原子变量?为什么需要它们呢? 在理解synchronized一节,我们介绍过一个Counter类,使用synchronized关键字保证原子更新操 阅读全文
posted @ 2020-02-25 21:05 Ivy_Xu 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 本节主要讨论一个问题,如何在Java中取消或关闭一个线程? 取消/关闭的场景 我们知道,通过线程的start方法启动一个线程后,线程开始执行run方法,run方法运行结束后线程退出,那为什么还需要结束一个线程呢?有多种情况,比如说: 很多线程的运行模式是死循环,比如在生产者/消费者模式中,消费者主体 阅读全文
posted @ 2020-02-25 20:44 Ivy_Xu 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 本节继续上节的内容,探讨如何使用wait/notify实现更多的协作场景。 同时开始 同时开始,类似于运动员比赛,在听到比赛开始枪响后同时开始,下面,我们模拟下这个过程,这里,有一个主线程和N个子线程,每个子线程模拟一个运动员,主线程模拟裁判,它们协作的共享变量是一个开始信号。我们用一个类FireF 阅读全文
posted @ 2020-02-25 19:50 Ivy_Xu 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 上节介绍了多线程之间竞争访问同一个资源的问题及解决方案synchronized,我们提到,多线程之间除了竞争,还经常需要相互协作,本节就来介绍Java中多线程协作的基本机制wait/notify。 都有哪些场景需要协作?wait/notify是什么?如何使用?实现原理是什么?协作的核心是什么?如何实 阅读全文
posted @ 2020-02-25 16:36 Ivy_Xu 阅读(281) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 26 下一页