自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wuqingdeqing的博客

文章洋洋千行,但有一点放在读者心上,足矣

  • 博客(6)
  • 收藏
  • 关注

原创 Java并发读书学习笔记(八)——避免活跃性危险

在安全性和活跃性之间通常存在某种制衡。使用加锁机制来确保线程安全,但如果过度地使用加锁,则可能导致锁顺序死锁。同样,我们使用线程池和信号量来限制对资源的使用,但这些被限制地行为可能会导致资源死锁。Java应用程序无法从死锁中,恢复过来,因此在设计时一定要排除那些可能导致死锁出现的条件。8.1 死锁当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞。在线程A持有锁L并想...

2018-03-18 22:49:40 273

原创 Java并发读书学习笔记(七)——线程池

7.1 任务与执行策略之间的隐性耦合Executor框架可以将任务的提交与任务的执行策略解耦开,但这种说法有点言过其实。虽然Executor为制定和执行策略都提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略。有些类型的任务需要明确地指定执行策略,包括:依赖性任务;使用线程封闭机制的任务;对响应时间敏感的任务;使用ThreadLocal的任务。7.1.1 线程饥饿死锁在线程池中,如果任务...

2018-03-15 23:06:38 171

原创 Java并发读书学习笔记(六)——取消与关闭

6.1 任务取消如果外部代码能在某个操作正常完成之前将其置入完成状态,那么这个操作就可以称为可取消的。取消某个操作的原因很多:用户请求取消;有时间限制的操作;应用程序事件;错误;关闭。6.1.1 中断对中断的正确理解是:它不会真正地中断一个正在运行的线程,而只是发出中断请求。然后由线程在下一个合适的时刻中断自己(这些时刻也被称为取消点)。有些方法,例如wait,sleep,join等,将严格地处理...

2018-03-14 23:21:55 210

原创 Java并发读书学习笔记(五)——任务执行

大多数并发应用程序都是围绕“任务执行”来构造的:任务通常是一些抽象且离散的工作单元。通过把应用程序的工作分解到多个任务中,可以简化程序的组织结构,提供一种自然的事务边界来优化错误恢复过程,以及提供一种自然的并行工作结构来提升并发性。5.1 在线程中执行任务当围绕“任务执行”来设计程序结构时,第一步就是要找出清晰的任务边界。在理想的情况下,各个任务之间是相互独立的:任务并不依赖其他任务的状态、结果或...

2018-03-09 22:34:37 162

原创 Java并发读书学习笔记(四)——基础构建模块

4.1 同步容器类同步容器类包括Vector和Hashtable,两者是早期JDK的一部分,这些同步的封装器类是由Collection.synchronizedXxx等工厂方法创建的。这些类实现线程安全的方式是:将它们的状态封装起来,并对每个公有方法都进行同步,使每次都只有一个线程能访问容器的状态。4.1.1 问题同步容器类都是线程安全的,但是在某些情况下可能需要额外的客户端加锁来保护复合操作。容...

2018-03-04 17:20:33 259

原创 Java之异常基础

在Java中,如果某个方法不能够采用正常的途径完成它的任务,就可以通过另一个路径退出方法。在这种情况下,方法并不返回任何值,而是throw一个封装了错误信息的对象。需要注意的是,这个方法将会立刻退出,并不返回任何值。此外,调用这个方法的代码也将无法继续执行,而是,异常处理机制开始搜索能够处理这种异常状况的异常处理器。1.1 异常分类在Java程序中,异常对象都是派生于Throwable类的一个实例...

2018-03-02 21:06:20 143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除