Java并发编程实践笔记 第一部分 基础知识 第二章 线程安全性

来源:互联网 发布:图片分享社区php源码 编辑:程序博客网 时间:2024/06/06 13:17

1.被多个线程调用的类,无论任何执行顺序总是能表现出正确的结果的类称之为线程安全类


2.无状态的类是线程安全的(没有变量的类是安全的)


3.如果要实现计数器或者 唯一ID生成器可以使用atomic包下的类


4.重入:当线程调用子类的同步方法时,该方法调用父类的同步方法是可以的


5.如果盲目的对函数进行synchornized,会减低程序的性能


6.竞态条件是指多个线程或进程在共享数据时,最终结果依赖于执行顺序


7.当使用锁同步策略时 一定要先保证其安全性,再在简单性以及性能中找平衡方案


8.当需要同步的代码块中,有很耗时以及可能出现死循环的代码,尽量不要用锁


9.原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。
对基础变量的赋值是原子性的

int a=1;int x=a;a++;
只有a=1是原子性操作 x=a需要两步取出a的值 赋值给x a++需要散步取出a的值 进行+1 然后赋值给a(64位的如double,long在之前的jdk中在32位系统中赋值也不是原子性的,先赋值32位后赋值32位)


0 0