并发技巧清单

并发技巧清单

  1. 可变状态是至关重要的(It`s the mutable state stupid) .

    •   所有问题都可以归结为如何协调对并发状态的访问. 可变状态越少就越容易确保线程安全性.
  2. 尽量将域声明为final类型 , 除非他们是可变的.
  3. 不可变对象一定是线程安全的
    •   不可变对象能极大的降低并发编程的复杂性.它们更为简单而且安全,可以任意共享而无须使用加锁或者保护性复杂等机制.
  4. 封装有助于管理复杂性
    •   在编写线程安全的程序时,虽然可以将所有数据都保存在全局变量中,但是不建议这么做,将数据封装在对象中,更易于维护不变性条件: 将同步机制封装在对象中,更易于遵循同步策略.
  5. 用锁来保护每个可变变量
  6. 当保护同一个不变性条件中所有变量时,要使用同一个锁.
  7. 在执行复合操作期间,要持有锁
  8. 如果从多个线程中访问同一个可变变量时没有同步机制,那么程序会出现问题.
  9. 不要故作聪明地推断出不需要使用同步.
  10. 再设计过程中考虑线程安全,或者在文档中明确指出它不是线程安全的.
  11. 将同步策略文档化.

出自 <<java 并发编程实践>>

  

时间: 2024-07-30 10:17:40

并发技巧清单的相关文章

并发技巧清单(1)

>>可变状态是至关重要的. 所有的并发问题都可以归结为如何协调并发状态的访问.可变状态越少,就越容易确保线程的安全性. >>尽量将域声明成final类型,除非需要它们是可变的. >>不可变对象一定是线程安全的. 不可变对象能极大地降低并发编程的复杂性,它们更为简单而且安全,可以任意共享而无需使用加锁或保护性复制等机制. >>封装有助于管理复杂性. 在编写线程安全的程序时,虽然可以将所有数据保存在全局变量中,但为什么要这样做?将数据封装在对象中,更易于维持 不

时间管理技巧——清单的重要性

时间管理的重要性:把时间压榨出来,感觉没有了自己爱好的发展.因为在爱好上话多少时间自己都不会感觉多.这样挤出来的时间都花在学习或提升自我上的话,那爱好就没法存在了. 难道花一段固定的时间去实践自己的爱好?  这也许是一种解决的办法. 不错的清单的例子->> 富兰克林的13项品质养成清单: 一.节制欲望:食不过饱,酒不过量. 二.自我控制:对别人要克制.忍让,不可心怀仇恨. 三.沉默是金:少说废话,不说假话: 四.有条不紊:做事有计划,物品井然有序,所有事情都按时去做: 五.节约开支:‍对人或对

一份超级实用的 Python ”技巧“清单

Python是世界上最受欢迎,最流行的编程语言之一.这有很多原因: 它很容易学习 它是超级多用途的 它有大量的模块和库 每天使用Python是我内在工作的一部分.在这个过程中,我学会了一些有用的技巧和心得. 在这里,我尝试以A~Z顺序共享其中一些. 大多数这些"技巧"是我在日常工作中使用或偶然发现的事情.一些是我在浏览Python标准库文档时发现的.另外一些是通过PyPi搜索到的. 但是,应该归功于它 - 我在awesome-python.com上发现了其中的四个或五个.这是数百个有趣

[Java Concurrency in Practice]二至五章小结

下面这个"并发技巧清单"列举了在第一部分(二至五章)中介绍的主要概念和规则. 可变状态是至关重要的(It's the mutable state,stupid). 所有的并发问题都可以归结为如何协调对并发状态的访问.可变状态越少,就越容易确保线程安全性. 尽量将域声明为final类型,除非需要它们是可变的. 不可变对象一定是线程安全的. 不可变对象能极大地降低并发编程的复杂性.它们更为简单而且安全,可以任意共享而无须使用加锁或保护性复制等机制. 封装有助于管理复杂性. 在编写线程安全的

程序员使用Node的十个技巧

从问世到现在将近20年,JavaScript一直缺乏其它有吸引力的编程语言,比如Python和Ruby,的很多优点:命令行界面,REPL,包管理器,以及组织良好的开源社区.感谢Node.js和npm,现如今的JavaScript鸟枪换炮了.Web开发者有了强大的新工具,接下来就看他们的想象力了. 下面这个提示和技巧清单,能让你和你的node程序保持快乐. 1. 用npm init开始新项目 npm有个init命令,可以引导你完成创建package.json文件的过程.即便你非常熟悉package

【笔记】java并发编程实战

线程带来的问题:a)安全性问题b)活跃性问题c)性能问题 要编写线程安全的代码其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问 Java中的主要同步机制是关键字synchronized,它提供了一种独占的加锁方式,”同步”这个术语还包括volatile类型的变量,显示锁以及原子变量 在编写并发应用程序时,一种正确的编程方法是:首先使代码正确运行,然后在提高代码的速度. 完全有线程安全类构成的程序并不一定就是线程安全的,而在线程安全类中也可以包含非线程安全的类 线程安全性:当多

如何用好 Google 等搜索引擎?

看见知乎上如何用好Google搜索的问题(http://www.zhihu.com/question/20161362),整理一下.感谢知乎大神 1.Choose Which Google? HTTP版          http://www.google.comHTTPS版       https://www.google.com    OR   https://encrypted.google.comIP直接访问    最快的北京或者美国IP还请自测...不同地区版   香港  www.go

3星|《好文案一句话就够了》:10年前一些日本经典广告文案

好文案一句话就够了 日文版是2010年出的.日本广告文案大师整理的广告文案技巧,全部采用日本的经典广告文案,毕竟是翻译过来的,一部分涉及到日本语言文化可能难以体现原文的妙处,前半部分的案例还是浅显直白看起来没障碍也感觉确实不错. 作者整理的文案技巧看着都眼熟,没发现有创新.具体的技巧清单可以参见卖书网站上本书的目录,看名字基本能明白. 总体评价3星,有参考价值. 以下是书中一些内容的摘抄,[]中是我根据上下文补充的信息: 1:据说,[Sizuru]这一词源自一位相当活跃的美国经营顾问Elmer

文案创作16本书,最高3.5星

最近几年来看的书中,有16本是文案创作相关的.整理到一个书单中.以下是具体清单.点击名字或图片可以看到详细的点评与摘抄. 以下是这16本书的清单,带有(new)字样的条目是跟上一个版本比新增或修改的内容: 10万+爆款文章的套路与技巧:3.5星|粥左罗<公众号运营实战手册>(new) 一线公众号操盘手与写手的套路.技巧集.主要内容是:没有太多实质内容的情况下,在公号名称.标题.排版.图片等各个环节吸引读者关注和转发,让用户感觉有收获. 从书中内容看,作者写文章不可能去采访.研究,但是就能靠手头