IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【JUC】整体复盘总结 -> 正文阅读

[Java知识库]【JUC】整体复盘总结

本文为整体复盘juc可以参考同样是按照黑马教程写出来的微博:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/

  1. 搞清楚一下概念的区别:进程与线程,并发与并行,同步与异步

  2. 知道创建新线程的三种创建方法以及特点(继承,接口,返回值

  3. 知道一个线程占用一块栈内存(想象成一个容器),这个容器里是栈帧也就是方法

  4. 知道方法区别:start和run,sleep与yield区别

  5. 知道以下方法的作用:join与interrupt,重点知道interrupt能够打断非运行非状态在这里插入图片描述在这里插入图片描述

  6. 知道线程的六种状态

  7. 知道线程在start之后不会被立即执行,而是进入阻塞(资源io未到),或者是就绪(此时时间片没有轮到线程)

  8. 只有当线程创建并自发竞争时才会进入blocked

  9. 知道守护线程:例子:垃圾回收线程,在所有非守护线程结束的时候,守护线程结束

  10. 知道临界区的概念,知道synchronized关键字的使用方法(还可以加在方法体上。

  11. 知道monitor机制:synchronized的obj是包含一个monitor对象的,这个monitor又包含一个owner对象,第一个线程来的时候会与monitor,以及owner绑定,其它线程来访问的时候要检查这两个对象是否有绑定。

  12. monitor是重量锁,为了优化(上来不加重量所monitor),而产生了轻量锁

  13. 知道cas(乐观锁)机制:cas的三个参数 内存值,期望值,修改后的值

  14. 每个线程的栈帧都会包含一个锁记录对象,内部可以存储锁定对象的mark word在这里插入图片描述

  15. 了解几种级别的锁是如何实现的:主要是通过obj的叫markword的参数设置不同值实现的。00轻量,01重量。

  16. 每个线程使用cas去替换markwod的参数来占领该锁对象

  17. 先加轻量锁,之后如果有线程尝试修改markword就会导致markword与monitor绑定变为重量锁,而这个触犯轻量锁的线程会去entrylist里阻塞。

  18. 了解自旋优化:为了避免出现阻塞(浪费资源调度,会让线程一直while询问是否完成

  19. 可重入优化:避免每次的cas操作,引入线程id到markword,发现是本线程id,不cas修改markword。

  20. 竞争导致blocked,锁释放唤醒

  21. 调用wait方法进入waitset等待,只能通过notify唤醒

  22. 注意blocked与wating这两个状态的区别

  23. 注意sleep与wait这两个方法的区别:sleep不释放锁

  24. 注意park同样也不释放锁

  25. 注意unpark用来唤醒指定进程

  26. 知道reentrantlock在这里插入图片描述

  27. 知道每个线程有threadlocal,存放本线程的变量(注意不是threadpool

  28. 知道InheritableThreadLocal,它能够让父线程中ThreadLocal的值传给子线程。

  29. 知道jmm的三大特性:原子性,可见性,有序性

  30. 知道jmm定义了主存(共享内存)与工作内存(线程私有内存)的概念

  31. volatile不能保证原子性,只能保证可见性与有序性

  32. volatile的可见性是通过禁用高速缓存实现的

  33. volatile的有序性是通过内存屏障实现的

  34. 内存屏障分为写屏障与读屏障,写屏障向上阻挡,读屏障向下阻挡,所以要注意读写操作的位置。

  35. 知道String的不可变,知道substring方法维护不可变的切割原理(保护性拷贝)

  36. final保证只读而不写,也就保护了安全性

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:16:56  更:2022-02-26 11:18:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:48:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码