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