java8集合源码分析-JUC:高并发与多线程

时间:2024-06-24 11:42:55
【文件属性】:

文件名称:java8集合源码分析-JUC:高并发与多线程

文件大小:118KB

文件格式:ZIP

更新时间:2024-06-24 11:42:55

系统开源

java8 集合源码分析 高并发与多线程 Stargazers over time 线程 线程的创建和启动 线程的sleep、yield、join 线程的状态 代码在 部分。 synchronized关键字(悲观锁) synchronized(Object) 不能用String常量、Integer、Long。 锁住的是对象 代码 部分。 线程同步 synchronized锁的是对象,不是代码。 锁定方法和非锁定方法可以同步进行 synchronized优化:代码 部分 synchronized底层实现: 早期JDK中,synchronized是重量级的,即需要调用操作系统(OS)来申请锁。 后来改进了,有了锁的升级: Java虚拟机中并没有严格规定synchronized需要如何实现,只要能满足锁住一个对象,一个一个线程的去执行其中的代码块即可。 sync(Object)锁住一个对象,这时会markWord,记录这个线程的ID,这时只有一个线程来,其实是没有锁住的,这时是偏向锁。即就一个线程,我偏向你。 当有锁的争用时:升级为自旋锁。即另一个线程会在CPU内打转,转圈等着,自旋10次,


网友评论