文档章节

并发编程的技巧和策略

秋风醉了
 秋风醉了
发布于 2014/11/17 17:21
字数 288
阅读 224
收藏 19

并发编程的技巧和策略

  • 可变状态是至关重要的。

    所有的并发问题都可以归结为如何协调对并发状态的访问。可变状态越少,就越容易确保线程安全性。

  • 尽量将域声明为final 类型,除非需要他们是可变的

  • 不可变对象一定是线程安全的

  • 不可变对象能极大地降低并发编程的复杂性。他们更为简单而且安全,可以任意共享而无需使用加锁或保护性复制等机制。

  • 用锁来保护每个可变变量

  • 当保护同一个不变性条件中的所有变量时,要使用同一个锁

  • 在执行复合操作期间,要持有锁

  • 如果从多个线程中访问同一个可变变量没有同步机制,那么程序就会出现问题

  • 在设计过程中考虑线程安全,或者在文档中明确地指出他不是线程安全的。

  • 将同步策略文档化

==============END==============

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 232
博文 574
码字总数 405033
作品 0
朝阳
程序员
Java多线程开发技巧

很多开发者谈到Java多线程开发,仅仅停留在new Thread(...).start()或直接使用Executor框架这个层面,对于线程的管理和控制却不够深入,通过读《Java并发编程实践》了解到了很多不为我知但又...

凯文加内特
2015/10/19
259
0
java并发编程(四): 基础构建模块

基础构建模块: 委托是创建线程安全类的一个最有效的策略:只需让现有的线程安全类管理所有的状态即可。 同步容器类: 同步容器类包括:Vector, Hashtable及Collections.synchronizedXxx()方...

ihaolin
2014/03/26
0
2
福利丨用这两本好书,承包你的整个元旦小长假!

俗话说得好,圣诞都过了,元旦还会远吗? 在这小长假来临之际,小编为大家带来新一期@图灵教育 出版的好书推荐:《Docker:容器与容器云(第2版)》与《Go并发编程实战》。 当然,按照往期惯...

DBAplus社群
2016/12/30
0
0
《Istio官方文档》设计理念

《Istio官方文档》设计理念 并发编程网 – ifeve.com2018-01-071 阅读 service 原文链接 译者:carvendy 设计理念 这页概述了Istio的核心设计理念。 Istio的架构里有一些关键的设计理念,是在...

并发编程网 – ifeve.com
01/07
0
0
《java 进阶之路》 上

整整一月没有更新博客了,因为十月份和双十一新入手的6本技术相关的书,这个月看完了3本,后面的3本还得慢慢肯。 下面我就介绍下进阶高级工程师必须也是我自己都看的一些书和知识点。 1.深入...

jijs
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
1
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部