1. 设置线程上下文类加载器
- 获取线程上下文类加载器
public ClassLoader getContextClassLoader()
- 设置线程类加载器(可以打破Java类加载器的父类委托机制)
public void setContextClassLoader(ClassLoader c1)
2. join
- join是指把指定的线程加入到当前线程,比如join某个线程a,会让当前线程b进入等待,直到a的生命周期结束,此期间b线程是处于blocked状态
3. 什么是synchronized?
- synchronized关键字可以实现一个简单的策略来防止线程干扰和内存一致性错误,如果一个对象是对多个线程可见的,那么对该对象的所有读写都将通过同步的方式来进行
4. synchronized包括哪两个JVM重要的指令?
- monitor enter和monitor exit
5. synchronized关键字用法?
- 可以用于对代码块或方法的修饰
6. synchronized锁的是什么?
- 普通同步方法------>锁的是当前实例对象
- 静态同步方法------>锁的是当前类的Class对象
- 同步方法块—>锁的是synchronized括号里配置的对象
7. Java对象头
- synchronized用的锁是存在Java对象头里的。对象如果是数组类型,虚拟机用三个字宽(Word)存储对象头,如果对象是非数组类型,用2字宽存储对象头
- Tips:32位虚拟机中一个字宽等于4字节
8. Java对象头长度
9. Java对象头的存储结构
- 32位JVM的Mark Word默认存储结构
10. Mark Word的状态变化
- Mark Word 存储的数据会随着锁标志位的变化而变化
- 64位虚拟机下,Mark Word是64bit大小的
上一篇:Java面试手册V2.0+突击V3.0知识点整理(十五) 附封面图片
下一篇:Java面试手册V2.0+突击V3.0知识点整理(十七) 附封面图片
Java多线程系列先暂停更新…后面会补上,先更新其它知识点
如果觉得封面图片还行,请顺手点个赞
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)