关于同步的问题,想弄明白java,同步不会是不行的。这不书弄完后还会从《java并发编程实战》和《java并发编程的艺术》选一本或者都看。

第六十六条:同步访问共享的可变数据
说的就是线程之间同步的问题。synchronized及volitale关键字的使用方法。
在进行同步的时候,不仅读的过程要同步,写的过程也要同步,两者必须。哪步没同步都不叫做同步。
知道 i++ 不是原子操作,其中包括读的过程和一个写的过程。

第六十七条:避免过度同步

第六十八条:executor和task优先于线程
尽量使用java.util.concurrent包中的类,避免自己写线程。这个包就是专门为多线程而开发的。

第六十九条:并发工具优先于wait和notify

第七十条:线程安全性的文档化

不要根据文档中是否有synchronized判断一个方法是不是线程安全的。

第七十一条:慎用延迟初始化

第七十二条:不要依赖于线程调度器

第七十三条:避免使用线程组

第七十四条:谨慎地实现Serializable接口

第七十五条:考虑使用自定义的序列化形式

第七十六条:保护性的编写readObject方法

第七十七条:对于实例控制,枚举类型优先于readResolve

第七十八条:考虑序列化代理代替序列化实例

是强迫证让我把书抄完的,其实我不向看这部分东西。

Effective java -- 9 并发/序列化的更多相关文章

  1. Effective Java之并发

    并发本身有两个概念:1.互斥性:2.可见性: 先来说一下可见性,就是让共享的变量在进程间可以及时获得最新版本的数据:这里比较简单的方式是为可能被并发修改的全局变量添加上volatile关键字:vola ...

  2. effective java笔记之单例模式与序列化

    单例模式:"一个类有且仅有一个实例,并且自行实例化向整个系统提供." 单例模式实现方式有多种,例如懒汉模式(等用到时候再实例化),饿汉模式(类加载时就实例化)等,这里用饿汉模式方法 ...

  3. 《Effective Java》 学习笔记 —— 并发

    <Effective Java>第二版学习笔记之并发编程. 第66条 同步访问共享的可变数据 * 关键字synchronized可以保证在同一时刻只有一个线程可以执行某个方法或代码块. * ...

  4. effective java 读后感

    think in java  , effective java  这两本书一直都在java的生态圈中经久不衰.本来想着先翻过 think in java 这本大山,但是读到一半就放弃了.过长的篇幅,让 ...

  5. Effective Java通俗理解(持续更新)

    这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...

  6. Effective Java通俗理解(下)

    Effective Java通俗理解(上) 第31条:用实例域代替序数 枚举类型有一个ordinal方法,它范围该常量的序数从0开始,不建议使用这个方法,因为这不能很好地对枚举进行维护,正确应该是利用 ...

  7. 《Effective Java(中文第二版)》【PDF】下载

    <Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...

  8. Effective Java 第三版笔记(目录)

    <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时 ...

  9. Effective Java通俗理解(上)

    这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...

随机推荐

  1. block知识点

    1.block引用局部变量的时候,该变量会作为常量编码到block中,在block中不能被修改. 2.使用 __block修饰的局部变量,不会作为常量被编码到block中,故而在block中可以被修改 ...

  2. 遍历list,字典

    private void Form1_Load(object sender, EventArgs e) { List<int> ids = new List<int>(); i ...

  3. [C/C++标准库]_[0基础]_[怎样实现std::string自己的Format(sprintf)函数]

    场景: 1.  C语言有自己的sprintf函数,可是这个函数有个缺点,就是不知道须要创建多大的buffer, 这时候能够使用snprintf函数来计算大小,仅仅要參数 buffer为NULL, co ...

  4. 实现Nullable 可空类型

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace demo ...

  5. iOS UIView添加阴影

    _bottomView.layer.masksToBounds = NO; _bottomView.backgroundColor = [UIColor whiteColor]; _bottomVie ...

  6. Jquery 中Ajax使用的四种情况

    <script type="text/javascript" language="javascript" src="JS/jquery-1[1] ...

  7. jfreechart折线图 demo

    public class ChartUtil { public static ChartUtil chartUtil; private RoomViewsDataService roomViewsDa ...

  8. AR实景购物强势来袭,华为nova3让你试完再买!

    没空买家具?没空挑壁纸? 浴盆挑了仨星期,还是老样子! 不敢下手买,没空往回退, 这样的生活,你说累不累! 别愁了, 按华为nova3说的办, 可省千元退货费! 刚刚过去的华为nova3发布会上,华为 ...

  9. window 添加环境变量

    右击我的电脑 选择属性 点选高级选项卡 点击环境变量 在系统变量中选中path变量 点击编辑 在变量值得最后插入 ;C:\Python27\  (改为Python的实际的安装地址) 记住后面要有最后面 ...

  10. 嵌入式开发之qt socket--- qt 封装的socket demo

    http://wuyuans.com/2013/03/qt-socket/ http://blog.chinaunix.net/uid-22480862-id-388253.html