线程<子进程>(资源共享)

Java线程实现与同步机制
本文介绍Java中实现线程的两种主要方法:继承Thread类与实现Runnable接口,并强调了run()方法的重要性。此外,还探讨了创建及启动线程的具体步骤,以及实现线程同步的三种常见手段:synchronized关键字、Lock接口与ThreadLocal。
实现线程的两种方式:
1) 继承Thread类
2) 实现java.lang.RunAble接口

注:
要实现一个线程必须重写Run();
获得一个线程对象用 new
开辟线程: Thread t1 = new Thread(对象名,"t1");
调用一个线程使用的是start()进入就绪队列;
wait() 和 sleep() 的区别;
实现同步的常用3种方法:
Synchronized 、 Lock 、 ThreadLocal
在debug运行qt时,退出程序,会出现: ntdll!RtlEnterCriticalSection: 0x7ffb8e7dfaa0 sub rsp,28h 0x7ffb8e7dfaa4 <+ 4> mov rax,qword ptr gs:[30h] 0x7ffb8e7dfaad <+ 13> lock btr dword ptr [rcx+8],0 0x7ffb8e7dfab3 <+ 19> mov rax,qword ptr [rax+48h] 0x7ffb8e7dfab7 <+ 23> jae ntdll!RtlEnterCriticalSection+0x2c (00007ffb`8e7dfacc) 0x7ffb8e7dfab9 <+ 25> mov qword ptr [rcx+10h],rax 0x7ffb8e7dfabd <+ 29> xor eax,eax 0x7ffb8e7dfabf <+ 31> mov dword ptr [rcx+0Ch],1 0x7ffb8e7dfac6 <+ 38> add rsp,28h 0x7ffb8e7dfaca <+ 42> ret 0x7ffb8e7dfacb <+ 43> int 3 0x7ffb8e7dfacc <+ 44> cmp qword ptr [rcx+10h],rax 0x7ffb8e7dfad0 <+ 48> jne ntdll!RtlEnterCriticalSection+0x3d (00007ffb`8e7dfadd) 0x7ffb8e7dfad2 <+ 50> inc dword ptr [rcx+0Ch] 0x7ffb8e7dfad5 <+ 53> xor eax,eax 0x7ffb8e7dfad7 <+ 55> add rsp,28h 0x7ffb8e7dfadb <+ 59> ret 0x7ffb8e7dfadc <+ 60> int 3 0x7ffb8e7dfadd <+ 61> call ntdll!RtlEnterCriticalSection+0x50 (00007ffb`8e7dfaf0) 0x7ffb8e7dfae2 <+ 66> jmp ntdll!RtlEnterCriticalSection+0x26 (00007ffb`8e7dfac6) 0x7ffb8e7dfae4 <+ 68> int 3 0x7ffb8e7dfae5 <+ 69> int 3 0x7ffb8e7dfae6 <+ 70> int 3 0x7ffb8e7dfae7 <+ 71> int 3 0x7ffb8e7dfae8 <+ 72> int 3 0x7ffb8e7dfae9 <+ 73> int 3 0x7ffb8e7dfaea <+ 74> int 3 0x7ffb8e7dfaeb <+ 75> int 3 0x7ffb8e7dfaec <+ 76> int 3 0x7ffb8e7dfaed <+ 77> int 3 0x7ffb8e7dfaee <+ 78> int 3 0x7ffb8e7dfaef <+ 79> int 3 0x7ffb8e7dfaf0 <+ 80> mov qword ptr [rsp+18h],rbx 0x7ffb8e7dfaf5 <+ 85> push rbp 0x7ffb8e7dfaf6 <+ 86> push rsi 0x7ffb8e7dfaf7 <+ 87> push rdi 0x7ffb8e7dfaf8 <+ 88> push r12 0x7ffb8e7dfafa <+ 90> push r13 0x7ffb8e7dfafc <+ 92> push r14 0x7ffb8e7dfafe <+ 94> push r15 0x7ffb8e7dfb00 <+ 96> sub rsp,20h 0x7ffb8e7dfb04 <+ 100> mov eax,dword ptr [rcx+20h] 0x7ffb8e7dfb07 <+ 103> mov rsi,rcx 0x7ffb8e7dfb0a <+ 106> bt rax,1Ah 0x7ffb8e7dfb0f <+ 111> jb ntdll!RtlEnterCriticalSection+0x254 (00007ffb`8e7dfcf4) 0x7ffb8e7dfb15 <+ 117> xor edi,edi 0x7ffb8e7dfb17 <+ 119> xor bpl,bpl 0x7ffb8e7dfb1a <+ 122> cmp word ptr [SharedUserData+0x36a (00000000`7ffe036a)],1 0x7ffb8e7dfb23 <+ 131> jbe ntdll!RtlEnterCriticalSection+0x9e (00007ffb`8e7dfb3e) 0x7ffb8e7dfb25 <+ 133> mov rdi,qword ptr [rsi+20h] 0x7ffb8e7dfb29 <+ 137> mov rax,rdi 0x7ffb8e7dfb2c <+ 140> and edi,0FFFFFFh 0x7ffb8e7dfb32 <+ 146> and eax,2000000h 0x7ffb8e7dfb37 <+ 151> test rax,rax 0x7ffb8e7dfb3a <+ 154> setne bpl 0x7ffb8e7dfb3e <+ 158> xor r15b,r15b 0x7ffb8e7dfb41 <+ 161> mov al,1 0x7ffb8e7dfb43 <+ 163> xor r12b,r12b 0x7ffb8e7dfb46 <+ 166> mov r13d,1 0x7ffb8e7dfb4c <+ 172> xor r8d,r8d 0x7ffb8e7dfb4f <+ 175> mov edx,offset SharedUserData+0x36a (00000000`7ffe036a) 0x7ffb8e7dfb54 <+ 180> test al,al 0x7ffb8e7dfb56 <+ 182> je ntdll!RtlEnterCriticalSection+0x1d0 (00007ffb`8e7dfc70) 0x7ffb8e7dfb5c <+ 188> mov eax,dword ptr [rsi+8] 0x7ffb8e7dfb5f <+ 191> lea r9,[rsi+8] 0x7ffb8e7dfb63 <+ 195> test r12b,r12b 0x7ffb8e7dfb66 <+ 198> mov r14d,3 0x7ffb8e7dfb6c <+ 204> cmove r14d,r13d 0x7ffb8e7dfb70 <+ 208> test r13b,al 0x7ffb8e7dfb73 <+ 211> jne ntdll!RtlEnterCriticalSection+0x1bb (00007ffb`8e7dfc5b) 0x7ffb8e7dfb79 <+ 217> lea ecx,[rdi+rdi*4] 0x7ffb8e7dfb7c <+ 220> add ecx,ecx 0x7ffb8e7dfb7e <+ 222> cmp word ptr [rdx],r13w 0x7ffb8e7dfb82 <+ 226> jbe ntdll!RtlEnterCriticalSection+0x1d0 (00007ffb`8e7dfc70) 0x7ffb8e7dfb88 <+ 232> test r9,r9 0x7ffb8e7dfb8b <+ 235> je ntdll!RtlEnterCriticalSection+0xfb (00007ffb`8e7dfb9b) 0x7ffb8e7dfb8d <+ 237> cmp byte ptr [SharedUserData+0x297 (00000000`7ffe0297)],0 0x7ffb8e7dfb95 <+ 245> jne ntdll!memset+0xf4c4 (00007ffb`8e863604) 0x7ffb8e7dfb9b <+ 251> movzx ebx,word ptr [SharedUserData+0x2d6 (00000000`7ffe02d6)] 0x7ffb8e7dfba3 <+ 259> cmp ebx,0Ch 0x7ffb8e7dfba6 <+ 262> jne ntdll!RtlEnterCriticalSection+0x1ae (00007ffb`8e7dfc4e) 0x7ffb8e7dfbac <+ 268> mov eax,0AAAAAAABh
06-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值