会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Loading
牧之的 Blog
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
11
12
13
14
15
16
17
18
19
···
35
下一页
2020年12月8日
Java并发之显式锁
摘要: 一.概述 在Java 5.0之前,在协调对共享对象的访问时可以使用的机制只有synchronized和volatile,我们的选择不多。 但在Java5.0 增加了一种新的机制:ReentratLock ,显式锁。 它并不是一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选择的高级功能
阅读全文
posted @ 2020-12-08 12:31 文牧之
阅读(13)
评论(0)
推荐(0)
2020年12月6日
Java并发之其他的活跃性危险(饥饿,活锁)
摘要: 一.概述 除了死锁之外,在并发程序中还存在一些其他的活跃性危险,包括:饥饿,活锁等等。 下面我们分别了解和学习下。 二.具体学习 1.饥饿 当线程由于无法访问它所需要的资源而不能继续执行时,就会发生 “饥饿(Starvation)” . 1)引发饥饿的最常见资源就是CPU时钟周期。如果在java应用
阅读全文
posted @ 2020-12-06 14:39 文牧之
阅读(16)
评论(0)
推荐(0)
2020年12月5日
Java并发之死锁的避免与诊断
摘要: 一.概述 1.如果一个程序每次至多只能获得 一个锁(这显然不可能出现在实际编程中),那么就不会产生锁顺序死锁。 但是我们可以通过一些策略来避免锁顺序死锁。 2.如果必须获取多个锁,那么在设计时必须考虑锁的顺序:尽量减少潜在的加锁交互数量,将获取锁时需要遵循的协议写入正式文档并始终遵循这些协议。 3.
阅读全文
posted @ 2020-12-05 11:22 文牧之
阅读(24)
评论(0)
推荐(0)
2020年12月4日
Java并发之死锁问题学习
摘要: 一.避免活跃性危险 我们在设计并发程序时,在安全性和活跃性之间通常存在着某种制衡。 我们使用加锁机制来确保线程安全,但如果过度的使用加锁,则可能导致锁顺序死锁(Lock-Ordering Deadlock),同样我们使用线程池和信号量来限制对资源的使用,但这些被限制的行为可能会导致资源死锁(Reso
阅读全文
posted @ 2020-12-04 11:48 文牧之
阅读(12)
评论(0)
推荐(0)
2020年11月30日
Java并发之递归算法并行化
摘要: 一.递归算法的并行化 1.如果在循环中包含了一些密集型计算,或者需要执行可能阻塞的I/O操作,那么只要每次迭代是独立的,都可以对其进行并行化。 2.如果循环中的迭代操作都是独立的,并且不需要等待所有迭代操作都完成后再继续执行,那么就可以使用Executor将串行循环转化为并行循环。如下: //串行循
阅读全文
posted @ 2020-11-30 10:01 文牧之
阅读(86)
评论(0)
推荐(0)
2020年11月28日
Java并发之合理的使用线程池
摘要: 一.如何设置线程池的大小? 有时候我们使用线程池的时候对它的大小的设置没有头绪,下面的学习将对我们在使用线程池的时候如何设置其大小非常有用。 首先,线程池的理想大小取决于被提交任务的类型以及所部署系统的特性,在代码中通常不会固定线程池的大小,而应该通过某种配置机制来提供,或者根据Runtime.av
阅读全文
posted @ 2020-11-28 09:37 文牧之
阅读(43)
评论(0)
推荐(0)
2020年11月27日
Java并发之任务和执行策略之间的隐形耦合
摘要: 一.一些特殊的任务 我们知道Executor框架可以将任务的提交与任务的执行策略解耦开来,虽然Executor框架为制定和修改执行策略都提供了相当大的灵活性,但并非所有任务都能适用于所有的执行策略。 1.一些特殊类型的任务需要明确的指定执行策略: 1).依赖性任务。 如果提交给线程池的任务需要依赖其
阅读全文
posted @ 2020-11-27 09:41 文牧之
阅读(16)
评论(0)
推荐(0)
2020年11月26日
java并发学习之JVM关闭
摘要: 一.JVM关闭 当我们创建一个主线程时,JVM都会创建一个JVM实例进程来运行线程,JVM进程既可以正常关闭,也可以强行关闭。 正常关闭的触发方式有很多:1)当最后一个“正常(非守护)”线程结束时 。2)调用了System.exit 。3)通过其他特定于平台的方法关闭。 强行关闭:我们也可以通过调用
阅读全文
posted @ 2020-11-26 11:33 文牧之
阅读(30)
评论(0)
推荐(0)
Java并发学习之处理非正常的线程终止
摘要: 一.如何处理非正常的线程终止 我们都知道。当单线程的控制台程序由于发生了一个未捕获的异常而终止时,程序将停止运行,并产生与程序正常输出非常不同的栈追踪信息。 但是, 在并发程序中,单个线程的故障很有可能不会影响到整体,而这时的控制台中可能会输出栈追踪信息,但是没人看去看它,就相当于这个异常被忽略!!
阅读全文
posted @ 2020-11-26 09:53 文牧之
阅读(12)
评论(0)
推荐(0)
2020年11月24日
Java并发学习之停止基于线程的服务
摘要: 一.停止基于线程的服务 1.一般的应用程序中会创建多个线程的服务,例如线程池,我们创建一个线程池的服务时,它会又创建多个线程,如果我们不关闭服务,它会一直存在,所以服务的生命周期通常比创建它们的方法的生命周期更长。如果应用程序准备退出,应用程序会关闭服务,服务又会关闭它拥有的线程。由于无法通过抢占式
阅读全文
posted @ 2020-11-24 15:28 文牧之
阅读(20)
评论(0)
推荐(0)
上一页
1
···
11
12
13
14
15
16
17
18
19
···
35
下一页
公告