java并发编程知识点备忘

最近有在回顾这方面的知识,稍微进行一些整理和归纳防止看了就忘记.
会随着进度不断更新内容,比较零散但尽量做的覆盖广一点.
如有错误烦请指正~


java线程状态图:


线程活跃性问题:

  • 死锁
  • 饥饿
  • 活锁

饥饿原因:

  • 高优先级造成低优先级无法运行(概率吧)
  • 无法进入同步块(比如进入的线程陷入死循环)
  • 无法被唤醒(没有notify)

线程安全性问题的条件:

  • 多线程环境下
  • 多线程共享同个资源
  • 存在非原子性操作
    破坏掉其中一条即可

synchronized
内置锁
涉及字节码:monitorenter monitorexit
锁的信息存在对象头中

偏向锁 轻量级锁 重量级锁相关:

参考资料:
Synchronization
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁

Update 2018年4月26日02点38分

猜你喜欢

转载自www.cnblogs.com/fairjm/p/java_concurrent_note.html