并发
Code speaking
这个作者很懒,什么都没留下…
展开
-
7. java 终止线程
Java 提供了一种协作的机制,这样 一个线程就能 终止另一个线程 正在做的事。 7.1. Task Cancellation 用户请求 或者 时间到了 都会 产生 终止任务的需求 7.1.1. Interruption 使用interruption 来取消任务 7.1.2. Interruption Policies 中断策略 是 线程在 接收到 中断请求 所做出的应对 7.1....原创 2022-02-08 16:00:37 · 292 阅读 · 0 评论 -
性能 和 扩张性
多线程可以提高处理器的利用率;可以在一个任务正在执行的时候,发起另一个任务,从而更快速返回 提高响应。增加性能会带来高复杂性,所以除非需要,不追求高性能。原创 2021-06-29 17:27:06 · 78 阅读 · 0 评论 -
不要死掉 - 避免死锁 - 超时锁
用 Lock 类的 tryLock 设置超时锁。超过时间就报错。当 tryLock 报错了,记录信息,准备重新发起任务。用这个超时锁,在任务获取多个锁的时候,可以不必考虑获取锁的顺序,但要做好重新发起任务的准备。...原创 2021-06-29 16:48:05 · 300 阅读 · 0 评论 -
不要死掉 - 避免死锁
尽量只用一个锁。如果用到多个锁,文档记录获取顺序。看有没有死锁,首先找同时请求多个锁的方法,看这些被请求锁的获取顺序是否一致。尽量用 open calls,这样定位多个锁的使用和使用顺序就简单很多。...原创 2021-06-29 15:11:11 · 60 阅读 · 0 评论 -
不要死掉 - 死锁 - open calls
Taxi 和 dispatcher 构成了死锁。去访问带锁的方法,有风险:open calls 意思是被访问的方法 没带锁。我们应该尽量使用 open calls,这样,我们比较好判断锁的顺序是否一致。缩小 synchronized block 有时候会避免死锁:调用外部包含锁的方法,不利于诊断死锁。...原创 2021-06-29 14:11:58 · 138 阅读 · 0 评论