zoukankan      html  css  js  c++  java
  • 《Java并发编程实战》读书笔记(更新中)

    一、简介

    1.多线程编程要注意的几点:

       安全性:永远不发生糟糕的事情

     活跃性:某件正确的事情最终会发生(不会发生无限循环或者死锁)

     性能:正确的事尽快发生(上下文切换消耗之类的)

    二、线程安全

    1.为了防止变量在线程中导致程序出错,可以有以下三种方式:

      1)不在线程之间共享该状态变量

      2)将状态变量改为不可变的常量

      3)在访问状态变量时使用同步

    3.当设计线程安全的类时,良好的面向对象技术、不可修改性,以及明晰的不变性规范都能起到一定的帮助作用。(比如:开发人员可以将状态变量保存在公开域中,而不是封装在每个单独的类中)

    4.无状态对象一定是线程安全的。无状态对象:即不包含任何域,也不包含任何对其它类中域的引用

    5.竞态条件:由于不恰当的执行时序而出现不正确的结果。(最常见的就是:先检查后执行的非线程安全操作)

    6.应尽可能的使用现有的线程安全对象(如AtcomicLong)

    7.要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量

    8.要判断同步代码块的合理大小,需要在各种设计需求之间进行权衡,包括安全性(这个必须满足)、简单性和性能

    9.当知心时间较长的技术或者可能无法快速完成的操作时(例如I/O),一定不要持有锁

  • 相关阅读:
    HTML5存储
    HTML5 地理位置定位(Geolocation)原理及应用
    HTML5多媒体组件的使用
    HTML5拖拽
    HTML5一些总结
    js高级程序设计--数据类型
    JS高级程序设计基本概念
    浏览器内核、渲染引擎、js引擎
    JS高级程序设计笔记之script标签
    CenOS7下安装 nginx
  • 原文地址:https://www.cnblogs.com/xujanus/p/4530018.html
Copyright © 2011-2022 走看看