并发实战-第二章阅读笔记知识点

是否需要线程安全:

  是否被多个线程访问

修复多个线程访问同一个可变的状态变量出现的错误:

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

  将状态变量修改为不可变的变量

  访问变量使用同步

线程安全性的定义:

  当多个线程访问某个类时,这个类始终都能表现成正确的行为,那么就是线程安全的

扫描二维码关注公众号,回复: 5248219 查看本文章

无状态的定义:

  既不包含任何域,也不包含对其他类中域的引用,比如计算中的临时状态只存在线程栈中的局部变量中且只能由正在执行的线程访问,多线程中没有共享状态。无状态对象一定线程安全

设计重入锁的目的:

  防止同一线程死锁

保证原子性避免竞争条件:

  反例如下:

if(vector.contains(element)){
  vector.add(element);  
}

优化:

  将不影响共享状态且执行时间较长的操作从同步代码块中分离出去(I/O操作一定不要用锁)

猜你喜欢

转载自www.cnblogs.com/KanHin/p/10409633.html