博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 并发编程实战 摘要
阅读量:5109 次
发布时间:2019-06-13

本文共 556 字,大约阅读时间需要 1 分钟。

第一部分小结

并发技巧清单:
  • 可变状态是至关重要的(It's the mutable state ,stupid). 所有的并发问题结为如何协调对并发状态的访问,可变状态越少,就越容易确保线程安全性.
  • 尽量将域声明为 final 类型, 除非需要它们是可变的.
  • 不可变对象一定是线程安全的.
    * 不可变对象能极大地降低并发编程的复杂性.它们更为简单而且安全,可以任意共享而无须使用加锁或保护性复制等机制.
  • 封闭有县城于管理复杂性.
    * 在编写线程安全的程序时,虽然可以将所有数据都保存在全局变量中, 但为什么要这样做?将数据封闭在对象中,更易于维持不变性条件: 将同步机制封闭在对象中,更易于遵循同步策略.
  • 用锁保护每个可变变量.
  • 当保护同一个不变性条件中的所有变量时,要使用同一个锁.
  • 在执行复合操作期间,要持有锁.
  • 如果从多个线程中访问同一个可变变量时没有同步机制,那么程序会出现问题.
  • 不要故作聪明地推断出不需要使用同步.
  • 在设计过程中考虑线程安全, 或者在文档中明确地指出它不是线程安全的
  • 将同步策略文档化.
posted on
2016-08-04 16:45  阅读(
...) 评论(
...) 收藏

转载于:https://www.cnblogs.com/wuyifu/p/5737342.html

你可能感兴趣的文章
嵌入式软件设计第8次实验报告
查看>>
算法和数据结构(三)
查看>>
在iOS 8中使用UIAlertController
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
Atcoder Grand Contest 004 题解
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
idea 系列破解
查看>>
Repeater + Resources 列表 [原创][分享]
查看>>
c# Resolve SQlite Concurrency Exception Problem (Using Read-Write Lock)
查看>>
dependency injection
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
C#综合揭秘——细说多线程(下)
查看>>
c#运算符 ?
查看>>
Silverlight学习笔记(九)-----RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransform】...
查看>>
【题解】青蛙的约会
查看>>
【eclipse】点Clean后没反应
查看>>
求给定字符串的最长子字符串
查看>>
.26-浅析webpack源码之事件流make(1)
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>