设为首页 加入收藏

TOP

就是要你懂 Java 中 volatile 关键字实现原理(二)
2017-10-22 06:06:45 】 浏览:488
Tags:就是 Java volatile 关键字 实现 原理
000000029312a0: mov dword ptr [rsp+0ffffffffffffa000h],eax 0x00000000029312a7: push rbp 0x00000000029312a8: sub rsp,10h ;*synchronization entry ; - org.xrq.test.design.singleton.LazySingleton::getInstance@-1 (line 13) 0x00000000029312ac: mov r10,7ada9e428h ; {oop(a 'java/lang/Class' = 'org/xrq/test/design/singleton/LazySingleton')} 0x00000000029312b6: mov r11d,dword ptr [r10+58h] ;*getstatic instance ; - org.xrq.test.design.singleton.LazySingleton::getInstance@0 (line 13) 0x00000000029312ba: test r11d,r11d 0x00000000029312bd: je 29312e0h 0x00000000029312bf: mov r10,7ada9e428h ; {oop(a 'java/lang/Class' = 'org/xrq/test/design/singleton/LazySingleton')} 0x00000000029312c9: mov r11d,dword ptr [r10+58h] 0x00000000029312cd: mov rax,r11 0x00000000029312d0: shl rax,3h ;*getstatic instance ; - org.xrq.test.design.singleton.LazySingleton::getInstance@16 (line 17) 0x00000000029312d4: add rsp,10h 0x00000000029312d8: pop rbp 0x00000000029312d9: test dword ptr [330000h],eax ; {poll_return} 0x00000000029312df: ret 0x00000000029312e0: mov rax,qword ptr [r15+60h] 0x00000000029312e4: mov r10,rax 0x00000000029312e7: add r10,10h 0x00000000029312eb: cmp r10,qword ptr [r15+70h] 0x00000000029312ef: jnb 293135bh 0x00000000029312f1: mov qword ptr [r15+60h],r10 0x00000000029312f5: prefetchnta byte ptr [r10+0c0h] 0x00000000029312fd: mov r11d,0e07d00b2h ; {oop('org/xrq/test/design/singleton/LazySingleton')} 0x0000000002931303: mov r10,qword ptr [r12+r11*8+0b0h] 0x000000000293130b: mov qword ptr [rax],r10 0x000000000293130e: mov dword ptr [rax+8h],0e07d00b2h ; {oop('org/xrq/test/design/singleton/LazySingleton')} 0x0000000002931315: mov dword ptr [rax+0ch],r12d 0x0000000002931319: mov rbp,rax ;*new ; - org.xrq.test.design.singleton.LazySingleton::getInstance@6 (line 14) 0x000000000293131c: mov rdx,rbp 0x000000000293131f: call 2907c60h ; OopMap{rbp=Oop off=132} ;*invokespecial <init> ; - org.xrq.test.design.singleton.LazySingleton::getInstance@10 (line 14) ; {optimized virtual_call} 0x0000000002931324: mov r10,rbp 0x0000000002931327: shr r10,3h 0x000000000293132b: mov r11,7ada9e428h ; {oop(a 'java/lang/Class' = 'org/xrq/test/design/singleton/LazySingleton')} 0x0000000002931335: mov dword ptr [r11+58h],r10d 0x0000000002931339: mov r10,7ada9e428h ; {oop(a 'java/lang/Class' = 'org/xrq/test/design/singleton/LazySingleton')} 0x0000000002931343: shr r10,9h 0x0000000002931347: mov r11d,20b2000h 0x000000000293134d: mov byte ptr [r11+r10],r12l 0x0000000002931351: lock add dword ptr [rsp],0h ;*putstatic instance ; - org.xrq.test.design.singleton.LazySingleton::getInstance@13 (line 14) 0x0000000002931356: jmp 29312bfh 0x000000000293135b: mov rdx,703e80590h ; {oop('org/xrq/test/design/singleton/LazySingleton')} 0x0000000002931365: nop 0x0000000002931367: call 292fbe0h ; OopMap{off=204} ;*new ; - org.xrq.test.design.singleton.LazySingleton::getInstance@6 (line 14) ; {runtime_call} 0x000000000293136c: jmp 2931319h 0x000000000293136e: mov rdx,rax 0x0000000002931371: jmp 2931376h 0x0000000002931373: mov rdx,rax ;*new ; - org.xrq.test.design.singleton.LazySingleton::getInstance@6 (line 14) 0x0000000002931376: add rsp,10h 0x000000
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Redis 简述 下一篇基于 ZooKeeper 的分布式锁和队列

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目