多线程与高并发(二)线程安全
发布日期:2021-05-09 09:07:34 浏览次数:14 分类:博客文章

本文共 9698 字,大约阅读时间需要 32 分钟。

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������java������������������

��� Java������������

������������������������������������������������������������������������������

1.1 ���������������

���������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������-���������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������java������������������������������������wait()���notify()���

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

java������������������������������������������������������������������������-���������������������������������������������������������Java���������������������������������������������������������������������������������������������������������

1.2 java���������������JMM���

CPU���������������������������������������������������������������������������������������������������������CPU������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JMM������������������������������������������������JMM���������������������������������������������������������������������������������

���������JMM������������������������A���������B������������������������������������������������������

  1. ������A������������������������������������������A���������������������������������������������������������������������������������

  2. ������B���������������������������������������

java������������������������������������������������������������

1.3 ������������������������

���������������������������������������������������������������������������������������������������������������������������������

  1. ���������������������������������������

  2. ���������������������������

������������������������

���������������������������������������������������������������������������������volatile���synchronization���������������������������������������������������������������������������������������

������CPU���������������������������������CPU������������������������������������������������CPU���������������������������������������flush���������������������������������������������������������CPU���������������������������������������������������������������������������������������������������������������������������CPU������������

���������������������������������������������������������������volatile������������volatile ������������������������������������������������������������������������������������������������������������������������������

������������

������������������������������������������������������������������������������������������������������������������

������A���������B������������������obj���������������A���������������Obj.count������������������CPU������������������������B������������Obj.count���������������CPU������������������������������������Obj.count���������1������������������Obj.count���1������������������������������������������������CPU������������

���������������������������������������synchronized������������synchronized���������������������������������������������������������������������������������synchronized������������������������������������������������������������������������������������������������������������������������������������flush���������������������������������������volatile������������

��� ���������

���������������������������������������������������������������������������������������������������������������������������

  1. ������������������������������������������������������������������������������������������������������������������������������

  2. ������������������������������������������������������������������������������������������������������������������������������

  3. ���������������������������������������������������������������������������������������������������������������������������������������

1������������������������������2���3������������������������������������������������������������������������������JMM������������������������������������������������������������������������������������������Memory Barrier������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

int a = 1;//Aint b = 2;//Bint c = a + b;//c

���������������A���B���������������������������A���B������������������������������������������������������������������A���B������������������������������������������������A������B���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������as-if-serial������������������������������������������������������������������������������������runtime���������������������������as-if-serial���������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

��� happens-before������

������������������������������������������������������������������������������������������������������������������������������������������������������������JMM���������������������������������������������������������������������������������������������������������������������������������������������������������������������

3.1 happens-before

���������������������������������������������������������������������������������������������������������������������������������������������������happens-before���

���JMM���������������������������������������������������������������������������������������������������������������happens-before���������

���������JMM������������happens-before������������������������������������������������������������������A������������������a���B������������������b������������happens-before���������������a���������b���������������������������������������JMM������������������a������������b���������������������������������������

  1. ������������������happens-before������������������������������������������������������������������������������������������������������������������������������������������������������
  2. ������������������������happens-before������������������������Java������������������������������������happens-before������������������������������������������������������������������������������happens-before������������������������������������������������������������������������������������JMM���������������������������

3.2 ������������

������������������8������

  1. ������������������������������������������������������������������������������������������������������������������������������

  2. ���������������������unLock���������������������������������������������lock���������

  3. volatile���������������������������������������������������������������������������������������������

  4. ���������������������������A���������������������B������������B������������������������C������������������������A���������������������C���

  5. ���������������������Thread���������start()������������������������������������������������������

  6. ������������������������������interrupt()���������������������������������������������������������������������������������������

  7. ���������������������������������������������������������������������������������������������������������Thread.join()���������������Thread.isAlive()������������������������������������������������������

  8. ������������������������������������������������������������������������finalize()������������������

���������������

上一篇:多线程与高并发(三)synchronized关键字
下一篇:多线程与高并发(一)多线程基础

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月01日 05时49分26秒