并发编程学习(5)-----第一部分-基础知识的总结

本文综述了线程安全的基础知识,包括线程安全性、对象的共享与组合,以及如何利用现有线程安全类进行并发编程。文章强调了竞态条件的避免,可见性保证,以及使用加锁手段来确保安全的发布可变状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图:

 

引言:

    本文的作用就是归纳以前四篇文章的作用以及他们之间的联系。

总结:

    第一篇的内容是线程安全性,这是整个基础部分知识提纲挈领性的纲要。这篇文章中,通过对原子性的分析,我们分别介绍了类在无状态,有唯一状态多个状态时应该如何保证线程安全性。

    特别注意,当类有一个状态时,就有可能发生竞态条件的异常了。但是,在什么样的情况下会发生静态条件在本篇文章中其实并没有说清楚。而《对象的共享》其实就是在深入的描述如何避免竞态条件,即如何安全的发布一个对象。

    由于需要安全的发布对象,所以就对可见性进行了介绍。而我们保证安全的手段就是尽量不发布状态,要发布也是发布不可变的,最后实在不行了,才发布可变状态,而且需要使用加锁的手段保证可见性和顺序性。

    还记得《线程安全性》中描述过如何在类具有多个状态时保证线程安全性吗?《对象的组合》就是在深入的介绍这部分的具体内容。所以,在第三篇中,我们描述了如何分析类中多个状态的同步要素,即状态和状态的联系。也描述了如何根据不同的情况选择不同的手段去协调多个状态。手段其实和第二篇中发布对象的一样,尽量保守一点。首先考虑实例封闭,不行了以后才考虑加锁协调。一样

     《对象的共享》和《对象的组合》的内容中其实都利用了一个非常关键的元素-----已存在的线程安全类。《基础构建模块》则大致的介绍了现有的Java类库中所拥有的线程安全的容器和工具以及简单是使用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值