- 博客(13)
- 收藏
- 关注
原创 Hotspot Parker和ParkEvent 源码解析
目录一、LockSupport1、park2、unpark二、Parker1、定义2、Allocate /Release3、park4、unpark三、ParkEvent1、定义2、Allocate /Release3、TryPark /park4、unpark Parker是Unsafe类的park和unpark方法...
2020-03-30 17:56:37 2444 6
原创 Hotspot Thread本地方法实现 源码解析
目录1、start2、join3、sleep4、interrupt /interrupted5、yeild6、holdsLock7、setPriority Java中操作线程都是通过Thread的API来实现,其中核心逻辑都封装在本地方法中,其实现在jdk\src\share\native\java\lang\Thread.c中,部分方法如将当前线程...
2020-03-29 19:30:31 1414
原创 Hotspot 三种锁实现总结
目录一、BasicObjectLock / BasicLock二、偏向锁三、轻量级锁四、重量级锁六、整体加锁流程七、整体解锁流程 Java6对synchronized关键字进行了大幅度的优化,引入偏向锁和轻量级锁的概念,大幅减少了获得锁和释放锁的性能损耗。从Java6开始,加上原有的重量级锁(又叫监视器锁),Java中的对象锁一共有4种状态,分别是:无锁状...
2020-03-28 21:34:23 2817
原创 Hotspot 重量级锁ObjectMonitor(二) 源码解析
目录1、AddWaiter /DequeueWaiter /DequeueSpecificWaiter2、wait3、notify4、notifyAll5、exit6、try_enter /complete_exit7、总结本篇博客继续上一篇《Hotspot 重量级锁ObjectMonitor(一) 源码解析》将ObjectMonitor的其他关键方法的实...
2020-03-28 21:26:18 1300
原创 Hotspot 重量级锁ObjectMonitor(一) 源码解析
目录1、定义2、TrySpin_VaryDuration3、ObjectWaiter4、EnterI5、JavaThreadBlockedOnMonitorEnterState /OSThreadContendState /ThreadBlockInVM6、enterObjectMonitor不仅是重量级锁的实现,还是Object的wait/notify/no...
2020-03-28 11:43:08 3278 4
原创 Hotspot 偏向锁BiasedLocking 源码解析
目录1、定义2、init3、init方法补充说明4、revoke_bias5、bulk_revoke_or_rebias_at_safepoint6、revoke_and_rebias7、VM_RevokeBias /VM_BulkRevokeBias8、revoke_at_safepoint /revoke9、preserve_marks /r...
2020-03-23 18:58:27 2778 3
原创 Hotspot synchronized与volatile关键字实现(二) 源码解析
目录一、synchronized底层实现1、修饰代码块字节码分析2、InterpreterGenerator::lock_method3、执行本地方法synchronized解锁4、解释执行普通Java方法synchronized解锁二、jni_MonitorEnter /jni_MonitorExit1、jni_MonitorEnter2、jni_Moni...
2020-03-20 21:25:10 1241 1
原创 Hotspot synchronized与volatile关键字实现(一) 源码解析
一、synchronized用法1、修饰实例方法2、修饰静态方法3、修饰代码块二、synchronized底层实现1、修改代码块的字节码分析2、monitorenter 指令实现3、InterpreterRuntime::monitorenter4、monitorexit 指令实现5、InterpreterRuntime::monitorexit6、monitorenter/ monitorexit 指令的编译执行
2020-03-16 15:18:41 2052 5
原创 Hotspot Object本地方法实现 源码解析
一、Object.c二、JVM_Clone三、浅拷贝与深拷贝四、ObjectSynchronizer 1、FastHashCode / identity_hash_value_for2、get_next_hash3、inflate /inflate_helper4、omAlloc /omRelease /omFlush5、InduceScavenge / deflate_idle_monitors/deflate_monitor /walk_monitor
2020-03-15 11:04:45 1125 1
原创 Hotspot CMS算法实现总结(四)
1、GenCollectedHeap::do_collection2、CollectedHeap::collect_as_vm_thread3、VM_CollectForMetadataAllocation4、GenCollectedHeap::collect5、mem_allocate_work6、VM_GenCollectForAllocation7、 Debug日志分析
2020-03-08 15:45:01 632 1
原创 Hotspot CMS算法实现总结(三)
目录1、InitialMarking /checkpointRootsInitialWork2、Marking / markFromRootsWork3、Precleaning /AbortablePreclean /preclean_work4、FinalMarking /checkpointRootsFinalWork5、Sweeping /sweepWo...
2020-03-03 20:26:21 705
原创 Hotspot CMS算法实现总结 (二)
目录一、Young GC1、should_collect2、gc_prologue3、collect4、gc_epilogue二、Old GC2.1should_collect2.2 gc_prologue2.3collect2.4do_mark_sweep_work2.5do_compaction_work2.6gc_epi...
2020-03-03 20:26:04 1235
原创 Hotspot CMS算法实现总结 (一)
目录一、数据结构1、Java堆2、CodeCache3、MetaSpace二、关键类/方法1、oop/Klass2、oop_iterate / adjust_pointers /follow_contents3、ReferenceProcessor4、markOop / promote / forward5、GC_locker 和JNI关键区...
2020-03-01 15:41:08 1822 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人