From 1fdb7f17024b1bab4d351b32803ab4c34facfe0a Mon Sep 17 00:00:00 2001 From: guide Date: Mon, 13 Sep 2021 10:24:02 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E7=BA=BF=E7=A8=8B=E6=B1=A0=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=B8=8D=E5=BD=93=E5=AF=BC=E8=87=B4=E6=AD=BB=E9=94=81?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../7888fb0d-4699-4d3a-8885-405cb5415617.png | Bin 41453 -> 0 bytes .../线程池使用不当导致死锁.drawio | 1 + .../线程池使用不当导致死锁.png | Bin 0 -> 65526 bytes .../拿来即用的线程池最佳实践.md | 6 ++---- 4 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 docs/java/multi-thread/images/thread-pool/7888fb0d-4699-4d3a-8885-405cb5415617.png create mode 100644 docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.drawio create mode 100644 docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.png diff --git a/docs/java/multi-thread/images/thread-pool/7888fb0d-4699-4d3a-8885-405cb5415617.png b/docs/java/multi-thread/images/thread-pool/7888fb0d-4699-4d3a-8885-405cb5415617.png deleted file mode 100644 index a3678a72916b60f33ac484d13b1301e4a3b60637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41453 zcmc$`c|6o>A3r<@S)xL=ENzzTDJo;>l#t36vL_+g#yX?13oS(1vldd;>|@5hXAfCt z82di97`x{ha_;;7y`JA+&mYep=e%C$_%7FVeXr%ceddk&L!}e69JCM!H3FS!lR%RksR=?xRcJ1n^lb4vkpI2U_rS)Z|(^hzk-k-}) ztoRw@)Q*)Q4wb;$THL*?xgHK$MlB9m5(0-s)81}(M%wnx1e7j)wchU4%l>U9xnhwF z4S%=tGsT-Zlw4DRR+&sNbdmPaXYa7d(uu7g<8cdN+|1B`L$~da2h?7w>2`?#&qTNi znIJFa;Vrz0EZ=;U=$3v;f1{(gJdqr?f}e15(&_*Afj*a=^+x+?Yt-cuv>rAIh5daC zxL=|Cvbw*7)h3}(Qav>;T$k_fBS9;C+_jTv!}#evX-(DK%n#dj@Ww`6%46_N{rt;O z|F%~>l=e7*Hg7=t`F|Q^!g3NjVcnW;`0uR>w=VOdgc@J8Kl~iREvrBKia6gtw!S!= zh_G86Dtm7oBQ?6Sv)V4nu`p5-h!R0t z*taAF@Di5iby3BA9^30KI1F6OmBP-~b?vt{3rz>!H!J)5AWO1v5NlLJjYO7vA?&y7xzcYRy9g=&2%I1irnUS z*c+!6EsX0zt=q1vzPytMt$yiS(>#2Mko_|@NEA8^9=cZq>K4#`R(uAr6K z21Pb81|^Q>PX~XP-v00d{r3y|fA+>_i_iA2Ee==Q$AE=y*QYi{--$hpV{#oX z_sF*H&1P6KD7K52w;L$l=oiH`I<)uas1>4D%7`x_35xGxygE>k> zjnF9gu!nRmWtqQ-L6LL(O&3S--^Cd^S)VdAk^|J<&0SD>?@Uz@$?w;xU--gp~2BVLnr=3_dILR^1Hl@jK53WRyEV9Gbu+Hrr9K(zKWH!d_ULm z`S$1yJUv^Cl&$_K2em@?=i7m$y0#rjx85KT>5%wyw*#)DZ?pz5@(}DQc3q2~{XE@U zWNW~Pa2`qU+S`;nZiE@9$>CbBV>Q`81Tb*TcGWi@ze@fL(Q*?`m@l(96G`a)ouP{q zxKM#uqp!>^ndD&9QeeN!DrUMw0Dow|z3`q(#(m3WuE(Y5RKOe?{>(8$uU|KKLb#}j z;~}M^xfh4KDL;|bAn4_H|8zZpaj71xVg>MTlu&3BRVbuX>*0;M_?NTaCjv^rRL3G? zG=H+b!sz8&xG7upX2(;1)HQai9E#`1{V9qA@#gM0O=eOMyA|spdhvFH$ z$v%FOQmBE#?aMd65_^7U>UH^@#pOa6jrq|^%U^yeHeJKh)<{zE8oNzIcxqOU{|v*a zij|FbJQOoe~R&Pf8bDSK^)bOCi3n$Q_t*;rAQmvyLH9b2mO5<%)%p2yH z74rDy>ct%s5nF3>Q&f!H^Rf|!$*RTh#UVwsqloQ7>cK9}>%}5)9kp%V8bDJy67uA; zz4PxLuvof9&Z3f$A0({57vWpfl8zlWO_CowKQZJKHy^|Atru6g;mJ;C2{GX> zaLZV(kWmGZU8SIA_%k8V!6|7G#3K_JMgNVSqxZGgi<+=AQfOIrR^_cqE^ei!ssQd= zsAMBD>!MSv3AfNMT2a)(Z3(i2Wvgv6a>C1flJhmoc=KAOd-|1UabwQcB+q=vHmYBe zNH}HBpP;xRc)0ERRBI;T@!6sB@~-Rsmi$kom=a{r54$A1$9fFx*M>yu-;xP9#|M0V zo2?hL{1ox$jF|C!4MdXdWR0W(`%rlj863L5RKvKfLP-U8)>xreI1^V|nQv(6NKt9Q zbmuyi0$IinviAu36DeRdPmsMu-LMemy<05YE;-km6g-EZ|0(0}-{mG+0G; z2MDZ4<4i%J(|U@?Q46&cV7k064C?WoTQd<-lMH%1$a#rj7Awj7F^_H$`8uld&Ld{n zb{H=@+DPiTx%T}q6~ehhmJ$s; zb=6M>`r?(T4euFBcuMm{y87G?me5y-CVB!}uVsftf{X?3N}DMCTPd?Bs6P8WI=Bu4 zpIe8&jqz>FL*r=YbN@Sj2{SH)$72lMl`e5TsL^B1t@ejrZ0%ySAJp(J#)fB4Z(?_ekQv;pFb4K z64#;dNx1ImT+PVx`4g2Q*QM|e5}~!H&$b8z z4@}dVQ}I(h8;Q>sgO-BBi~A)caVa2;F*!EuI^<40b|g4IRT;%txn$G*iVSVOoIdia zI@zLL*Z>N1_Wx)(YQeaXca<)nH?%(^MQKNYukx;;H@_L>@*j!G;1kmnd=lteWRj!Q z8{*K&TR8&&5kNyfNV!SSRdaDS{Sb|lyueDK?3MtlQaSG}zA33th$@UCfv514%3r&& z*tXO%oI#kKbH?5M&MZXwr=sW=3cKoR-K=Y8%zZHe+Rh?#v_Hzvic_C8m68&P&V59; zMt(17n4;SEu3^s!jvyJf`uEE{{ZW@t7G|qU(J{GgXN^^=BkKiXCu$PL&Mv9;`dX6@ zNKW61%5&Ksa5>z2>I8r6uD$1;E^4*o0y8sIP+_A=EoqhNPVnAr0^*>06E=2oHcUno@l8?AWr$Epp}>m6={ z8t%1wyE^PE)vc-t+Ey^S*&~{+_Z;b3y&}`JImwqA zL&(LYf&b&V-&CdcliGOO(H6V9KlxkTn*A6PvfSssq(Z~#ek31FJMh>{2puyg{qsbx zB&FS#sN@f0zrHkol(5R;j{P9bIq}(WrH^GrEv8BI5FLN@#*6NIiyog*fmudm|J@cy zsJ#N9U;vE=(c1sEnDU!9{vk})yVY1R@(A4j|8^N@-nt$4)KJ0-b@9qfGZ#yu7^!#R zYDcg?se^>4k7LXB?^+f+RJ+(MzBMImtk=1%wchwYc!$6dyUSqDp9d_-cd^X)dTQkyrtQ;2t&c*3@kxi_R}Teyl3_zdt7ccM$yhLjrj=f;Id%`)EWB;)yi;ry?ub#K`lz z%-EcXi?oSXA##31im(>dfa3jO>+X@aowMqN_gr30Ea9~7QMQ5B6isDOsw`7H^?O<5 zq{c97|CgyP=Z2KTF2YjxU*t zoA6nRztm-jd@d`!^0vU{U9|2Ey?gtgP+f(o&E(|snUYH0Aal6YJqtglIq z6+1DB%rHEJvfj+f-z$@D`JMHKHwmVpwA5q^kB`@}5ZIWgh0C_uM?O4pvGlvSCpU!R z6;Jh*!3Y09tRzei*U78yASjE4J+28djBZ=!taI-`sy^bge(R5k^n{Pz&B0ryzRlK1O4h0-gG!jpxC+T*8#iSUgzSvpui0PX zMor|`->e_)ze^M`Bh0&RH^scCVRp_Ma;&*Fgj8akr)b?9-;+y8BMz{S%Q~xFkVcMb zsU$T>UaE?(y0qNn#7a>q^av$nx1(s~b@eUXaIw8fZyA#KRQid)b6pdU!q}@;A1j=P zJ%}YpLJ7asAj-i^93`_@x{3uX;&gAicE+SmwqeY5Mjl~9REH4&!`xr$gV@IauZk!L z=8}=xQ6Am#r4xl|eZ8*|r^FRH1sKv52Wu?KA=`Cf;Ej_EQG8 zTKncr@Xk{n_az@jz*`r$R|8IPq8|-*rmBjtlTL!hJo0NVx|O|IPM(Si&K|hwGP@zB z&K~#7y25L9j%GS<*?#`lWkj1pZy>=nb_mg*6(`%K_LWUCvp5h6wXs*d8Xd`&f`wMnP0x(z6T$<+04JU0)x_?Et2@vo=(Q!~jNn(KbYOJ-R~aaVMSK zdh*%Q`eo!|*_7Gs?43H;N z=#N;i^-!tX7kVJud|`4sCo5H8MdH9`7gNEG`LD*Z-_xm*szk zJ-jLCxTDDD^=gTiU0Jb?j*W688wdz?wXaXvwZ+}Yz8%Q$Mk!LvgkbX3s_W~e?6NewE;UL!L#L!I zUPcDOdO?_5*H34(DkCuM<5ub9Cu{eZ#qw>!x6$cO08Qv=dc&{9)<Atj}I$L4c zQZ-#R7)iU{Y$FEL1u?dhcM+vlvdHy<%uQMGfx*Iv;z3MF*?O2KbG}V#Kj}Pz_|2(S3aOX7Ci+4u@tLU-#qLsjOj^huSD` z55~iXVsd%p@C;ALo_>+)yw=Wz_b+DPr5JDN(y8$Dkmozm&SDg;z_es`cLzv3Yh&}M z_fvE^25f}m?c-FX&lNavUw60GRBck;5#L!?Ng$nx<$ytcFo4ZJWyVS*Ff0y~du$71 zj2R&;Vz>(-&{41(O(q}-H{ja~#oIs5oIK7Y=Z+$_*y7N?P3miu+}OPWU8&rm%>nhk zGFs|L!IO-X2;F?El7cp)lhJJafv%Z6tfkygsdg?V(dfrj^&GCrRK)vnJOk)Hc}C&9 z0@}IJ-R}=Y0;$_Z&j-(Cmv@RqJ?*t=*A%o}#9TPlldZHs3HQZhQka`paf#PO=RGoj zSqSk`mfH0Fs6rO|;(n};HKHW_xRMwadE_BLzIt$$LambPheZHuC=LCqIw7_q1e=wRs0&x|%a%;s#R3@3lCayPf8{19?$}95M5gsV|pMm3m>;Nx>v# zv;5Sek^E(C-81_7A%~DL;SJBj`f*dl{&ninX?^p_EOy)v?~?{MVS&VUv~3KTYN*rWdov# zWV|%fb&YP`p{4IONuF8O@E(45-2jV!Z>QChVg^>_DE@7GFr_T4&L3Cw^zH`~n`Fb( zPvv}+rPF2tUbM~LBw$rXkLmI~4kxAD==giRsjU$6E5~pl&i+>jCvwG#85QUR%n^&Z;G};w{$ATyd$%w$UV; z=kLj!stAT{wyr{9=h(&q$q*yX(?ge_CtoXti&Ie119(6AGmIbkZSB-F4 zJvT6UB`Jb`(HHZ0hyIZ}-(@GkaA!P&vT3k%kB8X~``GAowRx7bWT~^l{cxZb=A6Y9 z)mGVPp|8zkyDwEyGlfJ_5(Wya#y*ECSHl`Uxhh1s5tLaUpYV$j@oZuA_#rfaXMjww zmxerM#*&rY&wE0{dev=XBycxKAAbsEMsvom@s5uRNlVuO;F*TdL}5AMp#zKh-CNT9^Hrcs_*~5q}ao zwTzWrZIK*uqPl46yy_UTY^MfYepOK~{~gcJ{sh*-Wy+o=4d5qFh)6uS^QoK%ACqDu zX--vg$&ZFdDSoVhDY?(}<`CQYu8hTrG2xmj*^N~#dh^=2@KhH+X>eyJvxnWCcI7+K z^zeFuWhV`h{^Ww*!Kt4>PCAF($g-gAbc8%2Vam1%a-P#WX(3R=uS`r> zOp%5~0u)0%O(`2CTvxpzH%iN4ly*yierPOu+Xm6xDbbTo=i0DBuYUaa*DIwi>#20r zeSM|iD80me1BUk|zC5i12$8}L^TFq&dp_Z23}dYrJ~p9zNH-h}$*SV<*-)6ykR>Jj z#va9&`M)~u|F>I)YH&?yV(^CIsl|J(w|oTnCnAnqo^JwxZTVt&k&o7M12M&EJ5>ut z62kWKHK&*(95s#qYOTsXZ#5NQ{3yCSC37AmY7pZVH+X#nT}m7pDf}OD_2r;zmpP|> zXWUT94i)=%r}illS!z}oR=jUQUA?*f<1c+vK76x{_PPT(;rTeCU^?&FeGcgr^JHlG zoE|sk?T&~R_D~#HN>(N#Q1>Arn1r5aA(=655x^WIHmaE()H6 zqYSQXMG^Xtt8`D#o16P-7j-2Ye;>ZABBIHEq&lQ1lrX=R!IoW{xm)bD@VpAwwzDd( znbVzv&o<2Y!Tm3{&Q!pT*iCf~*=^6C@x?%2$;?Jmhsw=AqNpAFuk znE$3GSrsq%`A9wRp%(}hf>|o23WZEavIVuu$fwbeOPKJ;aXvC1g?GMY5YjRnOW*6%Vpn;GM#C$sh%vj$yjfzfFA-*S@UPsdXP zM-`KaLK5k}WSw#ne3tQV7gU-ijdf(az`rX-w#s-v#2WcgCTVwh4juWn|@d+j5ksQVh z$CnQQ4DY*KDXdC07C53XRlxoef@IeLT0+);kFYxd?04^+l=^PY|?WIG?MOpzE=H@P|l|kW`R2gdxA|7 zayS0xK^u<2Ur>`qA^uD) z`5NHJ`Ci_67c^?%mj7kg&V~bgzAyK5S6{wm$Y6z+*Lf@e?OeTAY-=|+rxGo%4%7rP zVt@&IaWticnvwfHpufjzlyD*FbwC%DjCu->A2ji`g@#qsF?a-D;puxMxZp3o=~{BJ z@7uSP_1WLexr+UPJnMrGUL0isJf}&-vY14O0b#n-2F_^$%7RE1ySX}r0frE3e|<3L zl-vg1FXe#zNm7AyA4 z<@t9HC^nNK8qgywFiT^u^UD`n_dbjZWGu2DCbY>cLK{3+CtK})r)%3)`BKW6*bWpp z5Qn|IHcm+c90ezoOrg!2BTFKLboq)-a7r=LWYD$I0Ku`}oe})&k%?6@NlqIe`>_(1 zxKmqbKU{t%MAK~|TEZ+~4zT;DnA!9UY=o|H%=M{+tPGU zBc`n=srU!zVYXJVqS>Dx?Lnv@;?D)ga+!O)7il ziU-T#ZPD8%%z0D>G%G^00QfV{jaCSkAr74?{F^R&mrt+sWE;&vE)LH2WX+Kbm+Mno zvG(OL9jvc!I!}iZ(@$_*6>#8EV@Z;H)_77$I<0?cqz1Q8JWPlb)*BrtvYjIf5yb+% zX_)%6HS6md>p+j?I##&^U@xNqS-gQ(_qpp$AEGza7GKueQaw6iSoX3o@QP>B@+`Zz zkyGn6?yufgf<%q0@wnt5M33uy-$+*)_Rt}|yC=6beZk9aKV{2IVXsk$TXjX&eh3<9 zQ7O({qb9%G{iQ=Li3E07pEE>wM$dX={|OSP^3^6;WZD&o<)_5oIiA038U@qhG)F=$ z^Um~&sInb-!SfP;$I1|Enbc6!JnkLWo_AE<=8*Q0DYdI)ZpZ(uf$;J=G=&QeG1Xtg z&ykqzl(Qvy$g7&$RA(K5ie$FZM}@NHb8awqUO9>)-d-Iw+C&O0q@4i+0typJ|3}>wzx=Af|Kk zx44Y&LsLyEM&Ffv$QL3Pda`1LY8R;GH*S$LY%G(l^pVmML8Wv-`{Xx$ImK(vl-B14 zv(!ii@W0D8;A6j^0PQCU9o$V|NpMSh?jRPw=S%oi#*-N>MQ7`v@3Q9vC^1re<#roC zCI5M>WGZ2Gxo_hpVQl#V1Jnt`8P?kIBNTmXUV(S1+!1vB-in-Rtd#$H!uH@ZmIGIq z+$W_KAv37l{Jww8=b4&2NwRCFTmCcG+kS!@+K0UCMipWMf-CQwC-evW(e2tOgNg;F zVmJ8JXxjmoma?+d=S|xh?Y4cMjak?~4&M{ryyds+{Wg4^bMfna+GkomzJIVR=le7! z-v-Fk7n97jHz$@L&-%PS;bqa6Y|mnc_tvF(0#ulKB50P#BwgFaDd^cQ4Eaz{qk$%O zQNg|?TEcVwtnn2-(__KbwXB6?38u+|VLKn>U=1iKv~xeV*Us`q)R+>ssgb)zQW>z^ zUZ1-Dd`k>`$gLreKLPJFf>^rJ_UT%48fA-wk6*S${rS$qW;QuKQ~W}0zOtP8z78)d z-mW!rmyo6{=18YgIyYkd6U{}y49m1Xa5p!-7<9s8mXcT@-R+Q*gPpY~FK>I0kXtJ& zvuBb$nCyp3w5w=do82!y-~M}ZED>k#1uu)eX>HYMVO4)(ptCguPZ+i}QqttT=i~bd zBXDkISKl1ooUNB%kF1S;U3r)Fa@cv_dW3{`XepU-B|TLwj3HdYLiBkhSJ+i<&ka-g z@0F#9|2CnYQdHh8o&^haF=UyWBb2fWa(0=GL%Hz9?v%T|Kry%c*%4gUCz;(Mp`3Ee1W{vLAlz*_cVfVw>C)_PlpsFT+Xq+5RYOyBG#* zAIG#_uH)r!`!00xOx953>$xnhM0DU@XBW~vr-VRdIcUDWNb8m55v9ardg9xe9FO7M z$=Oc~(*@QJI6A_|K}=hU!eg>3qsJehvN@SFER79p5>)$LvQ}n<>lRQ>UgiSRngF*A z@|2}=Q$(Bh1zv{5M;*RKxo0K6d&lInIsAyb*9SSznOOhqc;r7--euy?f5qQJ@Se;$ zX9^KmsTI~n2kU*Ld^a1pCS5K}@yYD3z0H>-9uRUu?b0Uj-KT3W(&>=^FXogPUrCO~ zZqTdVHr^LFBsFfSLT!m?Y)~perbiL5hco)KYI3oSM&7l_kT^GN9P1oB=Ulh9qFdn- zWwOjk-D0#|AzjjMZvz9ti=_`_HDL*4lPF@w@J^fG@Y`bfduV&NcU{J?DD036A7wRw z1l4cHN8HRs{i|*Cc-wl4BvH3@INL3_p=ef`X33yS$wH@dIL!u*H;=yt)-2zd<5ZM%K3m0j>RhLvGp37 z=oi1xVT(`e@&hax7_mYA*6y5Jx61g}*2}kwSv)a$tA!ikups*B{S2ArgrzZkK zeng8nRbRgrDgQZ^1)uLS9(}(O?V!NZe#JGUaQX4oXxS0ldG63Ulw7G^70rpt3kp_$ zt@qZITgJ+MbKYkYl%UQKPDvx0hE-=KCq{*11OYm4bEZq~pUL+#O)7@0pGNt@l#0dO zEI{UDl3mgQGG=v=C#Z|=lZzr#ny{YF^%`7yD-!!Ir<_1W*KQDHOtHI+O^t>AAv3ri z_ayFYl1|oEj=QultUCKq^u^TK zsWYCI`N|}NeVmA5wFiU>_V$ywLb0&%HK;zKyCvHE9W_IeIiIjYJ_x~80AT!@5!m{< z-bc26xSxdY_y-Al8wDQmH@{BMMxTb(hj-v+-5;16eZc?-zcyA@A-^XT!<&xH6r*nGCt4;$gT9}cr3~LV?eFuY zPVFEcFi4;#BIf3sPa78Jx*=Lx*lsuGU3?`HtRdALDBExYAC;Z^>Rw-mpQ!oV`ibFQ zH#-l{AevJ_X%ror4=f-{_qs#|bCL4BxdtW`BXtzV7O?AxP5Sx1DGoq`;+vgVrv?Or zN&(+VPSCz5sIE>s{&tGt+g3wu%n*eOZqa&M!u1wDZ>+Q0Xs|5=rL%z94wisBFAUs3 z;x9ngAHt$abnn2TZiujG^#h8d?-t`k?Rmtg>>3&yBNaZ zt*eic6gYNv`FJ@LsdxS%9}L2CrheTQ({k;3mCbIZJfyaq7hXavXvhk z5LB@F8%{~42Jk2_wIDZpa)fBU`l@~uM$S<* zXbN7Et??LTl(TOCajZEn7}NE(CgIH-*cyiybMEPSQl{^0^;Wos@jbZgb^pdmihoHP zSgA&aK7vszmr%`%MBP-O3Ucke^yffq+zqFX<*o4#xFTE&$lYb)Uw$e7COs<# zzSWQOKy}yTo%+jnUpr9}NXS`M;X$kvONV)WRrm$l|1-tX$a%<2r6vu1WW1A|00fDj(E!EiKxh!&XHGKy zZc=5m_dDy}MM_%ZLl!P}3p?`AD6ij!izT+mrInU&S;w*tq)img90+xJ9rLGE>bVG` z2^FtGZwiEwlVq>^oipb^OGh&gKgK#c9Pt*pm!}8c3@yTo^1RS62Wj%8*9VaM!(ELx ztfLHS4(%qFbhM56!0c&$q5TMFzzSuLnzID$b>yY*s4MtZ*no)o5W?S*Osg z{$P6mN=~>Ec+T(?s8k@)0qd15-MF~B-;IPMF8~gJIe-a@!YUWT6X`=Y-EwB z-v9N=80P5f$YkWpCVjWXl}4nJhh~mL@nJiOTfxY^V{nI@a}#Pn_i+@g?923O!(Oax zrl?Hj9+T^7aXBW%3?G2FOmr zge7L;&cr`l4L5*-b-nlf3P~xeXHNQm5$9$_SkX`Yg0CIiLRr}DFazdmgt4UTIdIGS z%ay$D7J8#(zc}DO)BW zRi4}u#;@ioq?>(zpo#pg%7=!fJ22Lodm53TIp8(C#Vn0dP>^UJCguB6U-!3}h?|k@ zd!QQJ8vs%YAssl_*`+J@h(OVy_9Nx_O8|Grq$PR|kR%I2dPcURWt>Amh7qQS^Xl_Z zgHl8;9r++oE3lNThImqZ!VW$2wYFZ;1_YCp-zJ7t`B7ui5?-b^uHpSjN($eDPbdH^ z(EwtXFv{%8+IbGIff3K>e%o^UOSVD?O zX=UW*K%sS%vlt@JY3d;lRZ^`PVt1_^ zs%p;!y}4iyOy}41otb))UOe`O9hy~KOLreb-7ee>T53NnZ(If3Xv*ZJhT8%3%XsSJ zXQ<&oG;;>g3eV9^VB#xI3Y|*&$S7bIaqpql&m&#C(VB7;qGlQIqC;*`9m*QGBjIWX zd{Y%p<7+Ea2+Bn;5bdoXc}&5Ar@Sw5rd3Pe4VsQZxZM*y4nM?cYAj zP`>E?_5mWa9~dcLB+)mWo~4!czFoCQQQmo4og8hm!-;gJO>n{jWr+y1qL)ceuhcoU z%T8hR$YiCE^=&?q^|K?tkie*uW$R2G1fCSgp!9hjkCa<(rfiOeGv5o>LoAbmF!BeQWie@$^UWqgH>edLz^cP`mfpW8_jb2yLM(TIcDr_2o$7Ewfpx3nV;CROAIxziCkyHrSr;=wLB9t=*3 z((g@;zQ+mY&3`E#UB8(DuJ@XY{7CcHwm8^eL&+7vX3X;8Vvgu>!b+X z52iAB+Us}VL8$IKb>p{Tx)SKiI!8^-1*#(JVERwx`eShR4;mkiZfN8JsH#Lu*Zk*q ze711<4ExayHvsq$4HOa!&IDt3QsvfBQ^&)|Efd_n4uZs+9E*zirY0G%;j+#v9{pX} zr&=QkNY11TlfM?8{IcKyYNGwtsr~5a*`!J#M%h21uNrSt0tBH8iwca$IDfQ7DW_Hf zDc++u9&Mo|7#`c3r5Xu*z6lGi%e_b4Z_2EsV1(j7fqi*$YVFAmbCTS5-TT1F-O_k} z)R0FgU;xejN>=huOFnkl_!R7 zjg}(j={n3Qb@^_lHN`SLT^sRUUrZ9m4OppVJ9qKRwHL(Mj2tw0AI5WctE9+w5KTIR zNS-L*!=f2COUN9b=@;ZLl(niM3^Iqd&J0I;=#EyJfUdlYcD@0|`+mGb;Hq4~W>gjud@zeWF z;{v?jJgTJYp-k)UMuWU-uMymcJep4}VZJ9*Z|t1#yMB?6SJjov8xws5Hu?6${Z`aP zo0M++Cmjsn&touwSu*T3=K;EK1m!l)#W>g4?VSBBF=DX2d(H1}8a2eIkh3>BMT|@P zxNbTN%)}VVem)CqHwkWUV6Znm*!)E%`*(oB#89vRD9>D{J*AIrsgHC7VTO0xka?nI ze>CCX$lu7d1|bYJS_1+8@Yr1Bv^O_mqk}rWLlxl2zuQYVFzAdn|ERv?fPF@;5G(e} zWI##Su6F}SZf-g}Cm|NvjIezzh!I;_;6wV8iqd~>H~d5Sr0~Si0+}E!d+xP3r+mwH zSCVVUYK-{2{VT+C9AKJBl2Nrzz!|hf)2%u<-#zW-dWLsUjzp zFk%)x7Lf#yzxxAfB*v9a#a#YF{!()F%4LO%p{PtCsf0M5F%Otr>J5b5+?`R#w(iIE5L4_6Cz^V2? z4Lv)+QIq$+DS;A&f0GshfR%9*q-+PqN%c$RTfcMA^81_ZE1eT6a}BX1+R-hxCVVt$ z)sNFM3u7hdR@VpZi9E`7!{uclP)elzTuzrA1T5#~z{v0RtuI7Td`aX784=otKE8f3 za&KHfchUPBA^R{=qEzYqSwYl2v08Gi_HOC5hr3-2|4y|P4If`04DkHWz<)g07WOb- zHy_7b)_O_1WMnWvw&3IXx9|rrTQ%BoSu81-C+3c9yD^0VyUc_Z?z`~BBky$u%oEdR z18@G#%*zRc7Q^79wKTn{s;tC_9QQhx+3uep+jpI3R@J=m2YCVA0QJJF^?xw`e!xa^ z%9YaukUyUA+^FFp?Olx*!kV-4Pp`h8dJiuAyxVv*NygL3-6-LpAlBuYb&qq!W~)7k z>N^%b3||z!tN^a;c>i4O-!h4kuL?tzIFr2~Y>Aijj^Tp#=+rh~CxIcQbJ;x>6VVj7nUNDgv;6mD$%j7!w|C^xzl_35iX(QP{ zFChSD$_G?O8lnt=BEhcZy{;&eTy|Kmz4_(;URpD85i9ceN2QVD&r8`3WAy}lm7mU; zg;WK9K?QLCFT!)L!)|2@;W6uzg%N+V5g<#l=51+vWeT4SEL;NT@J0X|r_Nx7{NN`rOZ8TlY^)(eh`)`oJbIR5~ZMX05sI?llq?&|~ zHwsBwSw$779psC6b(x=#M2;F*(keDk7M$q8vRD8y4^Im~Y+56TcQ=K3DW8Ko2EHH6 zvrsx(@t*hnk-jC^z!Df2SUmQbBiVp^5m+lW{0%U!wxXqCO=doq6}D62JB<&@%zaQo zNuvEbemDJ~bDx4QVLi5H(nxvsY!Kok^yQj4c&UZU3*rX_7b09$w+|QYX!?Iu@YFL9 zNc2>+V#hH{@Jz1>#8z`+uta_fQJ=4xqcWD5#-t5Xvj9H@cg)Ja{nj` z;NZ>^&Mz1mNnT(wAhDo#FmA7bdH@{E)It@xzP&7ak7il0XGcVSJ^hiKB^9y|y?!6_ z_YDAgfwCXLh2`J6CN61lj&C{TJ>64N((a@vmGV z4%l8KX^#8X<|wBsoMlNW>mpd~A5PGs0~PAZ&^qauuV}d8INli4kaav&0n3tvTb0!x zqBv|J=RphEZQ=Y6<6ydm4*qkXWd81$_A^c1DCVTyRqiFZ!~G#5>p-;nB}D}3m|r9{ zkUd!IgNl#gBX6QN@z%juf3qQV1QS$P!oYPC6>EnUG+P!tFBm#UyCk<{{P#JaIvgmG zAJ*4fB->GRVx=7m!xi!umIY4>hB6*px8(Wv%G84oLMSS7oVa&TB%}E5OoWW6A}{62 z1F|8yA;ux5gH9w}Ip}N?u8lN*q}?}`92=64lYS_na=Qw7{$S&O6hL0W08g|tn0+`e z%$4MUGR>Ajd+2>n6tcbPa9nLy=X+y7ZPGG0f_0yrerrHG?oVFI|H&qtRr~utAeSU` zk{>nqd)c#hzP&gFJM_}y-sw;-q*n}Px|$AaE%x3ymbGGDr%b9!ByKARx%Z|#TXhbD zwJpqn^JFH*{%M)L!DJY5SsVKKzxVL&^SYN^9up+B=MkiKdSUKj) zKs%1$;`C9$w)&e7VWnBrRqe$5q-e?XKg5h?F&9hs-3-FyT#jpqEVjOEZ-tHZSW$3} zn(MyH9wS!Fb59a(*2?iF*s^cEw2=4Ie%rNt9H~&ob30>y>Xrj;N97GtL)^u^!4ckI zE4_U+nP54m?_Y%j)Ef&>kcWq= zVq8A-WO@FxPZ`LuLT=jPtPR~x$;$J_RTYdgGv^rXP5S7bZ+aY*HYrELJcaKUt+P>ma&|xFDQR%D)9)J`iO@R81bdHEWpF+bbvIajVLgc6>rifkoPd$?sO(ep*$@ z#iN{toOvf!F7V&)9g+QbfTWtzA;Y;;&^{o|P@~M|u|4KpVN#_p##xtWhqj-OL8Z;G zVT2u?y+C56NaD4gLxG0f$#QB?x6S!}62ehI7v6lL7okkiJ?&U0q@*i4194--bv3po zY=jRMTbX_&+Aox{da!j~NqRTHWPb}m5JgX)mv$Jf%_~xpTLTc9TiC6R48hX2-n@5OOYj} zYIxEicN)!xYK(G>%dob^xX4)hWJeLorzw!dQ;T7w>Km*Uq_43k-ebL=rZOmbO0~2*WfyCEZ{C%WT z0YDb&-ivK3#w1|TC;}uuc*#uzsVV+5 zYq-1{>icBh@xMsyO^}g`e?_+e#GaBhs>{Wiy!BuUTsEHRdM1&5(fk4J9f43=RCB5e z!MC#Z`i%m!T@-!|e<?c}qQ<>aN7rS_zQbM(+q>w*y%?7ap_a$AvT9`H^}F6h(;vV8EgO5eSZ2^G64h%1s4ZTRHrbtRqOsK z|1v1O$i5g$nuZ%dUt+>e2p^OU5I~4ad0PYnO674R5gai5vzzxpdDL$A7{KAEQy1=T zn61xnsQ-YC{6m~h4nYU(7 z1L)aD0R&@t*y90e#o9(+E)@2@#fr^T15$zmm6q?0fgd4BOTM3q>$n=W-e(r#2IQMr zW_Ivq>)l--$=@9+eg}S@hd9zC)8hn!OU8@N`+iSnloo{09$|cooQv_Kz95eJVuV~M zv;#EFs>~F8hE=a1l8#Q|ZH<=n1X8`*84>;QnpIyYz+Z~hW0#O4{;WGwF&yA0On_z3 zbO(`OItY@Z82~bVm~)j!QKz>+K7lHyc6r@mJ0nIjaCjwLt5;a|flE^4Ipec|IQ<4n zk~pG%kKR&i?gdaC_rtX2E$%&!yj{qa`)9HC{0-Y5_W_Mmt+ifG%cqW%G|%jJt!KB~ za0ku0a7BMM!5xgS@JhMSxIE-lazc}&D#^2WgMi@k^uG?m)7?Ad5Q`-CQENcvnK)__ z^s|Z2U0~s@|L~QN6691o9D8FbF3fe%_SYBx{R{e7eZ(!)g;8ESP}*e#MW7-YFvr$w zy(mz{h$8(Q%#ncCHG@n;^isaOcm9Fe6G@hduXyzhD~f1~R3DiHAVMTcp1i=7 zbW$wY=-p+5?!u)nzbd2a$fC)=M1x`~C-D17{I+MrlGw|OK~7WXX$f(%P>2Eh1y8`i zheb5)Crd6Yf~rfk58DXqE(!d`)?5y8&21(%>I~VY^C<6q&@YFXm7(Q5(rSO5L%t(b z*AJ8yI^F(&-YYd+p;X6H%x;CWf?u+UTlpZ4J#|t|5!9ZQv5Ic+4sq;Nk`$NLxEo#j z4pc9yEnvhdYMxj2n@;FAZZyfI^6p(>@*CKO+s`Cfy8LC(3Y+D_z`?oDRexK#7++x3 zg#|g?)9O^uT4SZ#?ZMdpnW4yZ4Yq7#QeZcCChC{?+-y5Rm_E(GVYdC6ZoxO9@k#Xk zv($qSqlWLov;;t2$5)l*x^Nu=M#-L;2{Y^Tex54J$C@L*uNxVDDuvhW@_$EJx{xfz zCQvAqemxdoP1gU1x4(>wvTNIhaboC{5D*DLx6R`j z>5>u{8UzG}?t0g7p4b1m?)(4z-jDA`hM8lnW5u4^zU|Wz0bu|^BR7v@@+5lD=X7q} ze$*&Dj0Kk%@S!O1mga-VJ@xikM+B5j8_F5$)GFqX{FmSYSS{Yky8ybJwKq=+_-806 zMO@yZl)AU!VRtnA7B+4}#N~rI5)UUDWv-Hd=V~D-=F?=InE}wm%n+U8 z(5rl0fjkiWS(RCNFO$j-a6@%j5Tty=`?Mah|K)Q*!Ahc?pXI5v_-UlzMnz&n5;gX zR;Xr(+@!`aB9AcGm{J4-bn%S5^}``AMkXzo%h+>?!TkOBKOb=O?AH;LTRjSyDz}?s zc}%4kjXlI<5yIuSirI}6M*B&BuFem4oGLE+tQVG4_HOp65iaukJd~@XPH-Xv8|iiq zK^_rWyWr~;yQM+4$2r}@qa+M6JGA3Fw5VRX8{Uu4^Q{^QXOgVMn$*rYPgqtNMQHS?RoazzB%cc1!}>F zm4mg=C+v_?LV;=i9zq-LzwlqExI3x3IX?5=hl6l%=D3{1y#wsHF24@_BE!w8{eXe) zb%nf6AYoLB8_9G9sFg^f3VVc&wC+R4Gwq(@a<`9Z!+t7E2dNWAQgS5+EWqa)=MaeX zJvse`$&79fLb(A0(jy_FWLFKMOm7rtv2G$pbV0XhJB4ikFIUP@_5>BPM>bt(;y%F@ zVj%I^FKKxz*G6T`*1*t_wkAqC@-lrBj?8c%-=fTms(e6L1HvQc?t5|QjYcIl(+$@h z!;V7`$c+ETE@gnrZN_!Go%O^2ViBTib{WMgyZ2z1X7}@*zF_@fZ=C)dKsDHYNeqh} z4#<(cicJf^Vb^|Leh+r2F#l5oEl?CG#=-sBz}}aN?XF-fVnc_Y?0){6-^|`bQV!oM zGs01OSbp|vu4<&zl?iCR9-g9KKRWtQB9}j-V&dutZB76P$diIl@FAAkFa=*ui(HFOwkihhWHFx;Xph#j?hOQIZU47B2ZB69w z_X)Y*obHuYpg(#uR~$h>Mc$vzlyQg==y!%{wZ)}4Wlp7rq`$$Elm1hn{&^0h!-<0~&cBiiw9hyZNg-uYQW9AD zjel(t?j+uRfaiIQ^u%K9TVu#!u)?U+2e?#&=ex*<9@tTbymdIG&X(NdO-~(3KUz+P2xc>1c{(C(#W@1bs0?#jj ze&xdGn*Jj9*UXh7%jHX;7~`)5>^L4;79Kjl(ur?NYUe-gl{*fK*#qhYj^c;tc*8*eQ{;(s_oW57Go9c)#*lIFN;sMhr9BnqkAqDW6^d#Zmj1?zFAu$Bgr8@`Zw> zMJ;ay3K#9%=Z6O3Gut{A6Z*m(Z-@q+Kb#UPlff}Avy6k=9qKHj;XPQR z_31NTVNyng3eYF5Q!oluIC)}C67ZvQ7ehC}PW)vhtI|Q864~#Lhdj=%foA8yrNhjU*f%d#Va1@-CXG-_;^(7%5-Vsh z4RoaO#i$yyY(;OEl{CFtHb+9vw~-N##db!DpEz{$y;XWRSz@#Q!tAo4RcyZgzYYLHG2@8-`Od ztXDGHvx;BKpua*E`58+AyGORzQ70bs)ATCIZBO5^8=Y91n;8pki$&6oMn;357mp23 zX?k^z3*G#N1Ff;3G|CVt;+wG5{CN>;>@ZmCVBGIK)ZX5y<^$;R24EOYy{O$f3ocZA zPh%ZF`Qx7c-jmS3{!|++U^-XY=7M`we3|40jsvlUh}-r?v+K844w{PcHM^!a5u$&5 zR+|wdpoCm#XBpvDJBBl}AeJoyvZM|O43|}{R6_@6<96luS+#JFo$(92QKBIuj@nyZcJyt)JfN&zTcZk?e6=9aFw1UNXlT(i)egA*A>M@&wpkYC3yXr#%|BZ4d}*@!nM0^53r!_$?fQigw#UiE|^+GFtn96 zO8NQrIgel^G$^_QD7M0Sx)!}->^N8XBYKSzX^FBaopNA$y>id}m2@2+fp#J1I32~a zLzMm4u>90tDp5$k%DG`n86B63P@BD?d*4y-r!uMvFb2q_y7r=MN-JZ)asLz#PFpU3 zL{j4W!Y?yWx&R`4cbXDoWz51^;0L_;f^x;#HCNL*Kl<)^D&t^&E%r3(BFDJmy8&&C zDeCY3vA5@MdTAVQxI+h8hhDp<1P&{-841}9;h}$lhm=j*8r?Ob<;&94uElUT%={DI#C^GaLq|l5t={g9W2W zvolz#xP;|6=42=W)Y$5~IjOnK%|;=uUM)=EaX@?8z&5wKZrszGTILlQ$^E|nY6cs2aFo+Naou(t_u z|9mzr)L>dmZv>6B$G)ksxMzC#)y|}BaqFH2fWNF1-Af`93zOyprjeDlm29B^A|7;2g{|mIP6)nM#N+z&(2@Uj+Ty=&^(z8_}X$-<1m5?*FtP)Q?Sz&kPRRSaPiq2+DFD={KrGK{W>GHBL8|4bW zGOqzQr8_El30`@(sP!!}%aE2)>W-+khdWJBypLwcm@ClDth&g)c}~3>eQ(Zj(O39p zHM7a=N4_E`=K7~*lZ`6c1d`ow%=QE_<6H*Cq@Fl6sd?W+-pxSPKZ}4MW#Q>q+WQrI zWO4{ivZRM`!&18kGM|HwdQv~wSXI5X`@NB*%p`$Boc>D5@CSxbp41oV;1IN6y-2~g zD)^6{9}4KbyveVUNT*OvCV#v_nqxCMw4aXr#a$Vhk};p#E5Xs`e&}x5CuA{0%OAuVn@&{ANQz(kYSyq44k@21~Y@5AOnm9G3{L?IIc$Fqtt& zdtN0s4B_m`lF%l?(FtF<^djr|>$(q6o>I{Kq;dNh4TwoUVKuYJ%~Yu!P)@6ak#G;or^N|O+O zs;N_nLTqV&BqjJ~;-lUC-)LCFI|bOEx$f$&7pQ;304f_v{4ZBBJJ}Lv@{zW&vJUOL zI?=7-s$ZGM`c9RbVTx#BZRAL8%T4TU<(m&t1(zz^HpP-v$$wgw7}oQy)z!N!BaI*p zaQh>_YvXyB5aj5o5o$a@gwM%AM9LXI6}a%`V>nqf^$Kf{YieIV*|FHvh+r~%#z{t@ zSY!pzbO2KPYLteQKtrV%ybTRM_k;XlLv93~Skrf%2TW<_`xsFcq~BiY zg$N>|SMD#ko6BDP|5AMZ4G(H^-lt1crF&>V1S-{6Ls8rTSbf2_Z(y}v~N(}HJKlRNp6o2*p! zFF*XvE(E$HsJWh4A~oZXTrypm$f4MGo`9eF)x4*~|Gs*e{ydGEa_)-~a+j*3u|5yfPh&x>Sifv0TCDaR0{czal1U!K23 z|F=msqsns(S9Fg_{BB+rfsWq&>J$))&}<-EwGIlZrhNmA5wt1Ywg(aH zE8<_%VoNoH8Ud!`Y&dwopnTB+2P13=e-UNA&TntA?Qva|eJgtF{a0C15f_0^UrZy* zU3!x_SSR7t(Z6GhZ-VL&o6m0HkQTUtFe}Xn+9M-}8Yz|(s)4H^!FzMX@ zoMN#YtUgjhi*fdYuf2nkE62e~rDtG^3+5-BmU{DU%~lp1BLXp+wNc@%^utD7HpL|2 zy5L0F{L1-2bE@s_65>e4%t8P|6Njo;yqzpg-G#pcxLH}tAgLCneh(0AyY?OZB7fs- zr(xW=$bb3NzD{88=w1|D&lWJ4-K0NZojqfJ;6Wkb?QYJLA-Ktd&qwK+jDv!Ws4KV4 zyQ=BUkrE(PY(!hGf6d)A;6d=x(V^Dk&_WU?F*Uz!u;FQtLpM`>ps5awXI>mBn%f;~ zv(TIp5OTLZ72IblYl?eP8ns(3aeH<60hDd)fP&r3!}XIA-AtTNC0AQw5#CXB+w@nz z*-}5$;V|IOE6gkFY24*~zm$AAD8+=cs@dd{APzACNDQ5QS1aEgx30U%iso<2hg5~2 zuJc4IHkgFx&0s7=t*HX$!*xMMMMzdXh=5<$>g-6YTp&sYJHEf075IEXY2UO|Cf_D# zRNE%h?+kLgOLCvsJKCV8o8P|Sdef5*FCzG^m^_g_ceNP|mT>+D3qZ>k(Tig|vfR!< zG%kG)&7B4ai2o`)Z?^}Lcu>&$-C%LKD}pMX6?@b_WjXu3-3wf`mmm-xKKJ0sTf%x@ zs{XwFqicQE3CKqqsK`E|K7yE3;fJ|I-n%pSfO@+%hzoME%Q+N{ae9?u3yJgfrlmyRExiJZ*s>XEpN4a;P1}-!_TBpem}uBd7ay z|K@|aCNb3D3Vdp*db8fRp6(L%wlwLwh=U;t2b3=b#U6)$BnSXSoqHi|L#7NeB1-Vz zh3{7ucN@a2jbk=C4X|Q@Y3GC1GcLlPY9pGZN%=G>__{6I0@I{5fWzXA&7SDG{d*LZ zV7{RoK#6E89zF-P%-(eXb#o?el%C7uAAW@#TkO@%vsed!N;z-OSkX_J?MDI~$oSzn zySZHy-kk2XMnfT2G@;qlxx#zb|(v-Yr@1tjFx#rYj^&Yw;$K9W6 z9&j_~5Fb)v+Tbx0do>;~bLe(fuVNKDM2pC~t z<3^H(u^0aX7!WlQ9cf^10)5koJFld9@wT>GE+{XCK#bhWD`x!R+=l&|4`_WPb0R zmD0jOntfL3sp_h@-o?=9U0|y-HHB4<-=*;i3>3N+mISr#v`B%$;-KJyp#$n7XvnaM z9M((lk`V4s-{j_A=KgtX+BV&|d^v#4G-4fOq+;vL`Cf@a;puf27>I5Y1ix%kKU1Srqa=Pb@MUobj&_Q!(PmQ+_09=> z80p;)>P?3m&`jdKM`YX4eMzqtS%bL!X&x`e2_eCTs8H zR{q_QRDD|Nd>Lc+8oEXNd;o7vstO6gYfo7uJeiqZ#Rt3^RTWMJjM^hRy@KW(L()O$ zxpRNc1}KJ+f!9g^Lyk^Lc9;&d+NjG%X@WNSRW6hEpw$^vnYUhAO+>%~Nq0TZ^egSc zF5#y`&cr5qlIYxnY1VasW{Dwe(mZ z5xa6-^>X;<>6RH|*;5UFT90}|3-U%rb_c7ySlj@(m{5jla2n+hEphQyv$cc}+P*%6ka-vJwN++=PRMX-+u4bU z(#yQZw3N38-p~`__4~+TO>X{+TEi`?zP{6IzANeFr_~n`l)TFxwQrAWQ)h?Mx#IzG%T$vWS!Y%QJA5zy* z;7pxC{}3EMU~C5|#hdw6VP9|RxiZPdjkr#)=VWk$T^gnE^(c$eM)X=iHN&mR%d&ZT zaY=Z!hq}@uHbLhZBE1)(i1ZQyY<@DyV%G5LLeyPhvK~v=wsy8s2 zEbiH6uiCGalNK0xX|*ox$mKsQ8>+m6)B!hpd+< zmj&Fo!+$-ez984??!*FxL;@3qw|&qK6ez3%r~9ccYo@TMW%Lw&wDIBPtcTF5q*d_d zi4}~$aQ-!8I{!#mC}SUdwok?Z<=7c_ND9kHCsu0*?M(MPt}f$ zs(;LV^sAfjnjp97cJ_bJUBhEhCOaijYJ4qf*xIJns24HWxMuH@ve(J;A;|7G#*E88 zF-J=0t4;2rr1kg2Qs1{6VOp)Le5JF30NQ-?pio9B09!NL&_Q8J9|Zc@m~Fy!Ks6^Y zKvayTzdh}}1m(y-KKxUg?_b88g7SYa&S&San2(b%s=L)M7jc|}cfaErHtOB=mm#S^ zSql_xz-&FKE)#C?qy<^p?AIg+ASnwMj$8V=nJX(o7ZW^@O`gJz5 z=l7-xeW0z#ws%$gV#Wd|@WgsH@vG{sU!vw08XkRr_}h%^T9W%**I3j!>*&*Cw@w&YUo z?1kVj4z*uZND~wIx!jw53N4+BUI8WTH;vgbAq7$ZQPUMp3aDeQ?S9eTv?plhCZVM2 z`uFlQnKW5e9+3ieKk?ILcF8{U{{W(fJj&^u4iW_7{;~&2~ z92#2Zm`z9GWi;mYC2%l%XiPXFWXV`+bh+7 zlDM>mZj5|x*HULlLLmjPG~!*-|BQyz@Z!x@phMO2PBalx&2|aFL*-n^Zk`C^&0^L4 zD2A6w?_e1^4^LDKPyhR|F(tsHL@+&vS_eRAI_boFNKzGRu1TAQZPtWl3`#ca zKoRjYd;G5?6k&iaCD@HE-o7)V%E5rP}gF7w?E>4 z$7lGLqmLIK3Nnq3lGmGRbAVC$USeh`$YrQUqBIFMNj51|R^9=D5}S_`ZhH-b8ZoHd zf1u9E5{R#Y=29!b$J^$Hr|flu=!i)bf_mlVs3Dee_KnF;5obMb~lXPLS!9T$D{D5gL!(sDHM`JyJO- zI%c^48JbKa?Nh0bmG86Pf~8|3!84ZoNT@x7d~}4 zoh$t7v4u~dT?;Rn8+D9r1RbFoscEkVr8lg}4)ddQU?h^qt1OukYjW@!yE$t_btd3B zKl45dMuMihwC$f-*Vn#y%$(LI{aM*H~V9Pll?5 z^*FO&(|1rdoJE#J=r4r^amjcqq%(zAZ~}=DT`fH+$^T>dJ_u&T9IX-fsavR%o>Waz zE{(5Vt1D3nh$mSysZ?4*5@aK$n=iP9raTdDq+Gk7ObpTf%Y|ou z4B!$O$5|)Q(s%NtO7Xt>KY1)l&Iyi_#bC)Nl%585@@<%A(qC?;KlLK{RSA%V}oY*pH}vg zPtwThiOHLps=z&Qd@ZNmJJ#A5&jRO+T^TMa8&8&1W(E3XNd@2EG zt`pGuNcRQfq%7?|WcNg;d7pU&V#Wk*t(a?L8q>ubaUtdcZ{fqBNfp$w~( zr-P#K0TdvjiPuMR9yWxXi3o_yllucbUD)1<3W9Azn z$MYT-xu#vaMWxfsTIQQ`c`{1vc__BkXyCt zb&LgJf)=&|+?y?cM^^#{b)D9y50L}jW982kUKdiux6@^(?eX_(ic1lpi*KYbsGx^O zFXy<2NO;g`u@M+$%5a%5ek(2#37}n5?Ycea=h^|zRt=#3pDs1p-v})eaXV3=L$21U z)~z5Ah|&*Ih0IJOeSH*ziejB?on@W(7*h%fg^mz$E+zCe zb}&0-;4ivr=RNzIqYpvZV4=}R;Rh&skF!tmPdf{J;%JeOG2Kz_&JyC%?0}HxzEHo9 zwU;Ys#*pUbHS{-=YxVjKJv6Y+apkGabY*S^=zejs6h;#|kXXr(?mv??^Lgg$48z?d zMFPN*em?;Gj6DcWK$3P)9zO$0YTl(jhR@o!RuiiVwS7}bU1luZtVsc|yt+|wDrgs} zZo*|_6DUESN&|`WmtLSkQJEw4K#}zEHRe^zS4ZWbC-v!#lSS1cXuqS|*AW6hxy3*WjTti_Rcmmb{aiYf2r_~R99<6gb zz+XQnItQ{o@yz$hbgu+R#Qzoo9R`=YXy8!j4vl-w0u2;&{rf_6zmvEG+~vl1KR)|^ zd$`Y(Etz0#Zwy9NXVF0~7W z)g;b4Ka2rd%S`=RpG!BBS-{RH@2s~XAvp@3~lyqII(6Ok&5!3R^s%%8`7rU02lOMJH`Q^cNv?b;CE7+)8@ z=r%VZ25i#B1gTV&+ELz#wB)j&;$RAvqQjEoQ2Ps7yKEkZfj8n{^3X_DlfDHjr6O*Y zZ0uR!e1%jO7+K-`ef;&Z-Qh3)Qn+00kSg)0o zlrC6oL7>~NkxXLlFppOZR7>Zcj75Vg>)Cq>4`cNuL6gtOwP!mq>s%GdqWcK!a=MiX zpydQwxIv8mapPkkUo;zk-L8%gDH8f4K?-GPAs*JCZR9hHzGudmYsB3EHaIKZuk-cM zU%g9k5g*QjV=a7~Wrg>#u)8!rzXvPvBwmHXq(!Vc9k7LzVhomn+O`ralr8`y&JeqJ z^isU^S+mpMYGTx5l)@Daf$FPCvgT&oaS!Xl(_HTL7Ul{l1=Kaqobdc_I1ui4sB?5)dxxb)=InkTD!&o z$!>H5)?HarK4*cL0ZJzf;Ll_Op#NwPS&hQX_vN(n9Hn@b9R)v<@k~WR%#0tPH{%=7 z{1dv-mE-Nf=rAIUksHiAp4sT~_yJ37w$eO0E_qB#!8r6?+28VFM%|;GS;6X!Op(EF z&rR}-MYEoGBjB$hb_77UTfYvqIPg@O@?_}E^TcIHXsG4NNf4?(bl`t_gQ#F1G#ed^ ze~kI!snm`fU)H!C@7x=W>3!QUsTYuOKIvhj7e^ffx~H%m&?iQE!C5ycJ@g5Gz07M~ z%c1njG_BSmdZ?#d9|GNbpX;r-=aFKGmhTKazEf?TOH^6MTx&S%K32BHZ|jp1izB<~ z$}Sq}0n68Gs==g4*Y*Hgeo_t~la1LB*~~zQtQ1+%OxVnanTQ#@JDHY_)oET+Y+2lk z`=D>K+2O(b3xatBbBSQ`MR64D9QC-x{zFP;Msns64gG?0{_Uc2_!AFVr}gB@jt&uD zkh3U_j8kvTl7PZtslFFIElm1wF>SPMAZ%-c2qbIqKC|nsfhQEQ zr}I{6H+Ul(&wpu3_ht}e+Ld2*(A=0JT#6l_O$7L9H4m_uhr(-@OV5g^VrXL^C>IK< zRk%uo`K$qitE%R6a|TbmjUJm5@n;=1R2)$YwMvZTQ41IfY)(=hlUwHt6co^|4Pj`N z;g8;ugVw;i)O&THc(C=uFyx-P;cpD2pP{N_tf@rf!#QRAVem%5jGxG zb^kl;e9z`twXyvHnAQm3JCSS%W4(Ci{WIC0I;y}OVX#dX9PXD;Foa22q5O@tsIj$T zyqXb5UbQ>*UTz_+SB}WejJ!tFXfWvrTK($GbYI3gUETg}boM|f0CYL2uVeA`Jg8gV z%yOr8A7!D2&>{si-IIbJgo?yP#x!D=w_Y9ePXZ1epeV0ZxE|_o5waMf+?g3HcHuOL zvxo%YC6vuinrw7!9EohMh z&u!Ne@@dPEDf7H1=}4mHNNVE92%fWswITjxAceP6)pQ{xXC3c`V>vwxy0um^bpJg#l@x_~o*sl56JUESYsRZ<%;xES0FdHpX4pSL9T5^*2__ z=LOfGgEklp%o@BfDmrdCq9C`CY0dTnqd$y6q$w1J_P|8^K=$;r$E$|LK%8w*1LR7u zi74&esauJvavl=yE^WE627R02H|OGl(D5n(e100JQ7Z%j8Pq6rK700T8&pKOYSsbA zb_^$FEZ*0q`SJ5hD?h5d6<6vEwe^Yf#OMR9mOhiU5!oPZ&cxw}{Juf@*S}Z}sZi<} zxIz5%@-XW*eO5)t>kIHrKVVzd_t8SvVuD*=1MYAEzZ>sUA;P)FNx*Bi1*@;Bwi^4% zS-(mIBF(88PJJvV{U$fRKxgo`7&PAHh<46^F5Ctfr|YdBTU4n|3l{Xtc4pKrw}hz5 z4mZ3-%7)6k6SAmfzg%hKgLNSk4`{u;-W^E#D1lqSitI#Ij;hs*lQ`; zc}Ps7dv{soFM4R=z1O1ue)3-$wZgVB4i z@&!SRm+H)^J+Bi%=bBeRt*HE<+`dLS30D_~mJFO%;}sR+#Zm~#CA{kpjr4d}IJ!X8 zOP6oVH{`()GG{g+B%Dj?K(<4B}B%wuKEkz1aO?-qDuu4cS zX!o$nJf2w98YQ5ZPzqid7#she;gJHk!Q5YU25A1DPyYKm??ZopqQO)SN<2@e5UFx7 zsHv=M8{$=7s4fEct{Rl;l^sw`qoNQplY{xT1%C<$Q&M`&{i+=zx}NSF_mclF1Q~NY z1}v_u!$Wk$xqzUQwcdzSnag5A%>AXLz(f55r8Vx>=k7AS1JR>uhMxU9v3<8{wBXTF zZQ0C-PYRVyK}-|KPR=JMVN&hjyI2I=6G2FjxaZlxz#js|C1$#DGeCPx(D}o(amYjw zCj&F$hk<>wIUs3z`ZDCp6R>GHU|hxhcwxjTnYouD=D}NKZW9&*9BLsj+Oo{EkpIkx z*$jN}NFl4??udb%{I72W$k1^E$IqhwzUGetHb|iqQhgE1W48eCEkf1+pcC`}H>?Z? z^;$SqK!!om^d~)nnO{6)(@lAP@0>BR`iPiO{|!v2VAc1_g}5SK@wJTU#nC2kR##FI zl3s@@nob%o4M|x{_{GFYbt%T%uC1v@E&<_&=5ZXOT36%odF~g$@+0y_oE|V9_IrQInY3T2 z)D0=&pk|~b_1833rhQ9K22&f;Kj$`E3iB_c2_=MJ>f;@mAM)SZpAis8kW9*fYT(00@#vjh}Fa@2#ZuRY!szVXF&Lom&`Af zjZ(HtdtV-I?e6G6j(8{`=0JvM@^s}R2;Eb2Q$+y}&2@%hf%T8h13B`4 z&4udCsCGnRvRYcBi`D(_cD|NFs#ne&$yF9{BKsN<`vtKmJ#wZ1x-*b82nls1C6a;z zD~%F^@}Dd0iGp*Vy?iA~l=C7`J@7ZUQ8A6bpXgv?BLpoW7NP}c6o@Lw6pOf)K0;o_ z2Zqzw68D|_>A?s9Jrem01Zc8}6EHwDk|AGMi}XLD2}FdWivHOV@Kz9DA;vU9_$>=j z5SPXSlEi7$XFI(b!k@=41OAgPz^#f9vq&h_^q@T&&F@$RYQ4sI2N&tP9|l_Qy||B% z-7rjckk9trk1**h`JEsrgVICgME2^C-sW!D{Ky}m+O5ZSx{tP^nFKLgwh7uZce=pV$g=FW$kbFbl$`|pelZsTZp!Afqc;MVgX@S$)BCR@xycmu zIM>)Y-iVvP`luZERTlj^?fD}Dr<-Hl2tXWm5mg+l#NbKq-BU4|1GviaApixZW!FADu^R`;@?fjZv;`L!Qfs^j5F-z2c4lZpbzSeZmU+7 zH@AA$8I#c-7q{s@sxRLti>@xBt71xe+cyy_D81^1P4!c0X(M}CZJ0b?*N!%wK6r8b zuzrT1K4RTfx!_+Dft1J{uyd&d)`IAR0jPKES2D(Q$}=wG^E;HBJZP`lS!#v-3Ds`i zF4j|D&9VJi)RB?U%v~29U%pjpy=3;R+0oa;N9X^uC2~X;Y^X9asrIvwv1%JmCkZQ3r}u%NZ4!7fL-H~^{LP3>>CwvH~UEU_Q!^Q1Jd~R(F{a< z46Uu4{+6Xbyl^d=_Zxc>AoGRM<4CrgYR1UwcH1wDvhO%9&$#2uXpj-Le%>S4{xF_P zN67`prgCya<$|l7C!EOpkp@5F25At!1RT2809YPQXLC^OF9l+BTCW+TG0jKS-vJUk zb`bR^%eCQb?19@Z%*=B=STa*_N^0?$j?{$-JpV>6uqVyrK_t$x%+`C*%HVPr;St}h z8~yMZQqj-x4mMIeROEFvo|Z>lrvPseXMn~jzFRnIdjg#g(K3Fr#(_McSuV@GbDaKf#vqkG95CCNXIu_AK!51c5?bi z{wIh7ALXfjixLV75zDm7GKRR$wP3%7OBOyE6{R*^l&-au?kFeX)kies#!DikE`$iw zG@w?Qqec`xrtQn|f}a39QuZ!*TLGVi3a4*rhL7C%O#Dg{q;hu+sOrb)HQ~*NjJ594 zm&)B+T3b(2WoO6MRGVESBopPG@+y^Xz9;y&U^|hSD>K>uBN3%CG37X*j;S154A#e2 zAKaeCYr&cwe0DciJ@-OyuRkZ4onIg6QPm%IZ?*`F>&p)h9c~>JJTh2N-tdC+_8MLA zn77hHJsR?R(C^e7Eg?fd{u(FeaQ#?EC{0~aP<*|?jPa&t&ttVu3|<>*zGkiBTP|ML zA$}q5tggqhw0Q~eDgnY7&51raS0iU~& z5$Z^iCzL=@UvysGABzx@fwbj-e8Qq1{oaRL5|nyb_?HB!Rk-97-NL^Xlipo=uE$7+ zlR*`syugz&gAmELN6=S>5eX;=wZx8PyU>y`T^S&c51tUy_=EFVI4VNXsX`Dup7T!$ z^LUw>i-EENTJoAT&lfSWlj0)qxt}!0`jg-zbd@Z;y`Gu{3vnEO-}_zf%!D|O5AFsE zFiIf7_-EVIDG@p^3^wrxd->(RN6QqEf5orI+5VCvgn06@+#+ysUx9r>2D1@eeH-GBF!g-H=gE=Cjuv<1(&Uc`{>F+xwTpZVvpMJMJR z$cV?%#;9fkqU}w|b84P{CQR3Y*-QP;ykegJGcWVQ@MXihZzF-cQ!pp=F!QE*NB_JA zP}#0#P$KIXk}incGeI>2rafXxiXnp7>)a(_0Zf6Pb5$4Qa@X7o=Vy9=Bw#vfsngmYFKF{-+Om_q9Xq3H40stj}rt{If)(I0i=~G+j#j zPL7wp%#+<(Sv^J~crCzc`@m5CYD~b(b;fDybiixURVsGwW`mMFfcIZNG{PV}4fdf7 zSfcF8$4E-#fAA#|8Pq}Ij#4x0I6K1N+ZO7-wzkw4%t%gFHyJ@&nTqGBw*?%m)35rc ze7gQ)mOu6kH%ZrgxW=jK&0@0#Jcd4s3JhS{YoP!xekXA$*`FM88z`jpeUA;kfb@4^AU*inci+gv>aDCQ`FT7!No9uxDdC%Czj_M-1`mnD0Ib0r$(6cXra>$al&fP zfuY9F(CrAetsL^CUsG@;IT6*j+vMafSse@ud6?18OzEUc?)WW2rp!JLc=WO)A zt9tr=2aL3hxq;kejDDt)xxv!%h-sB`b%W&TbWCIWd%o&mDTEyw$KN9mJv@K{aaBJ>g$+)aHSoHi{4KaOa)n%1p`cM8@EAa36U!$_==GkE0Nx zLw-6RNY%~wTHvpKM+M8_h`4H;AngQ`SITOVN2>oy1&-|pFgx&M0qa%HXBVp+;DYTS zZp=f(<%_5U47D1+nC!tYZ!y69m%+1oj1oRRsE>$~@Q6TiQV<1qmPi2!A=7Nf!M~1r z4Ztun$p83!z;HJI`t<*+DF@W`%`L}q*`7BH0R6GUd1*R0gk5VXV%J;v?&PL&xX@MQ z+hK5x>OP+EBj_WAJnp_w80pjW0tN_nxYWZ{yS8qF?bc}F`ENtlJ-t(25jwNceopxx zeO>jRQc!ZAnVihx82mmu)%~3|MmGIhaK37Z-lR5@;CiC8>BO_Kb$FqlYHGPsawgR> z!=6hmUE6x!Bb4!-HU}_I)sy)WOOQd30ewUWIBS?`U_AKbkofkpav3{=8NG?eEWXHD zj8h=U27OpuT;iH8Q?*;Ye?8eExZs<7Ommdp%-8zZwKTV=^}8x`&hoFc$Ym3bR)6p9 zSZB$W)2VEMPZ8^jM>}D#5T9#}h7EAIN4x!r!2aqn0yhHhfxyq31>a-MW;f&X`z2Q} z>f3eZ+MN<;gciyq^oQimnMp?6Mai`Zx#0B8>45XIk}*%buA2)%OZ~5mmMLcN^aX+1 zFBHlu>*~Xcs6I4Y(8ys)P9R>AxX4wL|Bw405VNK#TR_yVXwZ{Wr@sl&+x&6OgV}$TuYHkT4YGn#H ze>`t}7Y?weh~1x7IX{=}d=x?L)Xk3{Fb8z3+i+M3IF7hj!R*k(B>V4VOe)ZWoXpzB z-QD#Twan@Pr7U>CSSQvT6H}W=^}aofyLeS~b{r>9UbfS60~fwAcE#+*ZchAKXT z%glQ0Ev4<$f_Io`>tunTnx>#luYSC`wNaQTTwrc0@3XOw0^E9juPYuBz>GD5@)g`b zFuE!x7=80sj|hv1gT%;ydTwT;srfh=OjCa*~BtN$Bh>8-ZV!2{4iA~rhuchIC55+ThUInE?rjw zSK&o}RHt91!Yq(N5Q-~eWjO({o7b|moK8%Rzk)I6)R?5>z0KoTu#8u*~DBD+wsMz3w&-WRTGrH3Ze<+F{jmHTtfd6~ku23c_ge!Cf~s^UHpASiH> zjP0cB6`KCp4M_T#{gt;s%t)a)#)=M_YM1Gs8vD#OJ2qh0|5@f|89iv%HUgHX(!&Y* zvuC5*5oH zXFRNcY}B4$KmOG;xnVE~k0yvr<(&0C1g0ArIIZw+vkiJ3SyW5&%(0u)jewA6CO6q+ zt8+jy<#&HZ&hsi0J`Uf|qRcl;1&x0i(&mD(dsC?c+3zKcTczkkzrxa(Db#0N%}zMZ5tyEJcVuq0A_-4XG-sJI~)4>Wh% zZ(z;npdtRtG`Aymh`Zh5#)nemRNKWH-=F(N;0Y8_iEr?#)9 zmbtu1?6j`5hXqvC9mGt2I%S0pN)!m^}fb&IXW4ciqsV8Xq-V5AzPNl zSRzaqOAA^l8mT#!vK6v5C1;LniIF8ViNwiLSKU_I>qLxwTwx^4rBI}Cy3coJ)aiBa z>t25{=KEW|%kzAm_wzgk1LIy>CraqwC_k86)5Dixy*?A3e=6&~C;IRq4fL&g(Zt81 zZ;Ae%+{4w_c~Mz15>nZML-m{tn48iK*4;a3nN>esvznkaWmLd~l@VN|3F8ZY47&PluC zD@YTv>)q7Bt_W0gJVxIg+%*-{keWrheH{eCxGVt?g`-i293eWl!YL2k;62Pt*c;PK zoi7w*z7~V|x~WLOZN+ZrHB13d)FK5qJ0(Yd@jK)Lr=F_FDTiQEj6oX28pUev$xYMZ zcD=}j9brSB<$4gp{Z@CC`DO}@-KVX{*!}OHlb2cN=|Tm=?#8U9d2I+NnDU`g0?zC0 zdu(lZz2{q*JkW}WC6W+Q8R_?kdrcs|ldEf)yf=MCPjJ84%GdQ^?YCc6*afprdsA6Z zujYRkzeCBwdyZch?_rHBCr5qQZBG6VYR#bIFVvb+Nc-^@GH@C8n8motMe~(Ad@#QW zMd92%+4X@&7X{B@HKoIq3Hp1G8xQ6vvh8omB3x@`$`zwy>O@Da_ze( z%L|7}s|TfeVTq4<%$EZ)Mq$<^DV~Iu&5<6nG%>oFP>oc`l`z#CQUs&@|&h zbq&;RAyk}@GNx?;@+H&6ZMZ9(7sDBj(K(0S{sl120YqcR5FYnJVq*!wRl`4PjZLw% z!yz#a{#o|{H0?!9C7BVf?4*?*+KyUC+@P{=I-R2YKf;R#9(rK3{@HhjsumKIlTO#A z^o)M~DSy{heg9cs2w<&m8m=1o44b{dnJGB=k=egm(mWdyZ<84rOP4zr zL%ezp8hbd8=kfDsor&dQT&&31mX87)vhZ2sf<^Ip>JNLjyY!+49H}ko2jM+-+&k&6 z>L5#K*cUnv00>g_&VpRal-@n_dqPRl`$a|XFU;0gMX$5c|3I7RrJmAh8~on_oAV;I zAhw=TCE;QhdiA=`3@R7(FO=;&GiW{EckiB!9r2A&B!IQZ{D=86MeYrYFD)Q+r+JOS zJTwAL4+{;BA}FlM9+460ZPW+yN{a3-RP-K9 znt`G>4g{YcbE+*EMi?uYw)Os%!=m<-TFp-S#+CT=`&mz>Zau)CcpQ!od3-TCS}+I2 zB+9|&tMHEShkFbFz)IQ;8{n7l0p*=%+C{kSn&3y>46D zWO$7F)E7RgebU67h-fnn$XM$T+M+wde@fT0=y>$f{x|KwNoM8fpT@SHt+KSV-xHi6 zx+_?t1PM~I@tQLs0k7V!!&ekvgk2w_q%R6|F{~lbwcpaNb6JhXA2A0-pMD000z>f#SF`(l zL9pm|G%&MhHnNZaYUg6ek{0a$#2gwJo5Pm}|Gtcd8+q##EV@oCIMI3+*5+G4Kzb=% z5IqAYx*P@Ue|&zrIf@gjps*XoebLLofKjQsH^yi)4QH>WCMo=4rJXPw|8$Z%j;pCY z#a%A^Y(jz<4JR{a;!WoaW43pTCJhOs#aP)yP6{YESofErmo5o(4vu=F+<6;UQ)8VG z5(Jk>zFgJZASSlttgWTF3sK1o#+Z9{ON9WBhIHkqNU79D#-`y}SG659_oX&Gkyr_! z7_xo09K>-;O;&e^hL&~6fi4}Dkh@^ndDl?`>1jbyYs5YvnHPqW!$(1FpI#s-rS6U; z-l-4-J`-2!33NjEJ3pQ{JJAQt(a2x+J+6AT%FzR%9NL=-@S=y_h>^qL9^@Lw`Dh$p zQ)J3dzCB3iJl{-9Sp!=(k`kASL&KXgbX*MBXW`|es!RHvNXPa#b$(DfB6TwC+jxU4GMvJCMl)I3s|7yLW`&1)}%QvgI*> Xlur%*E98m}i@}er71^?sbSV1YCY%T9 diff --git a/docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.drawio b/docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.drawio new file mode 100644 index 00000000..3a2c775a --- /dev/null +++ b/docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.drawio @@ -0,0 +1 @@ +7Vpbj5s4GP01fkwFBgw8QkLaSl2p0qzU3acVA+ayJTglziTpr18bTLg5WaYThrQdaTRjf75gn/Md+7M9QFtuju8Lf5v8QUKcAaiER6CtAISqqiD2h1tOlcWyYWWIizQUlRrDQ/odC6MirPs0xLtORUpIRtNt1xiQPMcB7dj8oiCHbrWIZN2vbv0YDwwPgZ8NrV/SkCZiFtBs7B9wGif1l1VkVyUbv64sZrJL/JAcWibNA9qyIIRWqc1xiTMOXo1L1W59ofQ8sALndEyDKF4s0OLpz4do5cF/PirF8tNuoVW9PPnZXkxYDJaeagQKss9DzDtRgeYekpTih60f8NID45zZErrJRHGUZtmSZKQo22qhj60oYPYdLchX3CpBgYUfI1YynIaY2RMuKD62TGJa7zHZYFqcWBVRaguEhYsZInto+FJrEpIWV0jYfOEi8bnjBkWWEEA+A1R9WlCjCKNACmpo2o+KMgmoqj43qsaNUb09RlCbGyM0xMgzgGsClyXYbxdYa+BZwPK4kRWxrI24xWVpHXgIuA5g02KVbae06LwV++GVHeCoA9AZVrSLbNcvc5LjnhMLk5+lcc6yAWMAM7vLkU/Z2uuIgk0ahvwzUiobsrnHRySnYvdQ0W3YPe9Bgl5Twq4pYRdOxa45il0ELBs4JieVsWUteR3HKxNvpA5IVdHcrFoSVhGwl8Bx3qT6g6xKY4BXZdWW7FYo4+jvtn7eoQV92/MYsMRlsSuBcVgFBsmxKWSpuPzLhe4Ad80TDnMPt/QEFTiKzDfWwF0Cy+IWVsG1ygVjDSxN3o/NSpXSkVhXTl63t+uxMyiq4YvB9B2MAcMC80tu0A5pej7QjxsNbIW6LMSx4KOGbuQ1RtdpdDh0GmgZQ6dR7am8RhLT4JCdR0SWFDQhMcn9zGusPXU1dT4RshVw/4spPQm8/T0lXTIYgsXpL9G+zPzNM++MOrs6tgtXp+cKeUf2RYCvzFutj3Z+EWN6raKgg6NyleICZz5Nn7qnuNvzpb3xdZ0vdFd81ePubLYmXyBdNNw/hxvoxGfhCXZGo78zyuKdVz2jQP031QwcqxnrrjQDjTn4mgN3+65wr8f9ghBSRZdCyAsrHhwb6N3/pWB/4dNnvxaE6Ddd+LSRAqzZuBMB1nf8b3xdAki9K75U2WPGxAtm/usumGj2SFEd8ZCC89Dhz3zgfFUV+rvkDHQLVG7/7FOKi7y0QEU7Q1o/7cGukKBxDdr/dfsWcIYEt9o2Wh3iC59JykbS8Ibsd0aXuf6tViV50a4hZdiV2XUBQ+91VC0Jg45Kds8TfwHhsjeeSl+clVEK1pmCS+kORGwAZ1Veig3OeQu1JePqSxPIeMS7XXsR128ja1PpHQCV2WUteaV67jqty9fpKxRPE9pOQJCmzk6Q5EliaoJgR4OTbaWv83bep1SfX3Mvf4/4AUp/Gs0Zs2uu/thrEpT/yppD81MquWyentKfRnOm5LntVgSxbPOPdVV02vx7oub9Bw== \ No newline at end of file diff --git a/docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.png b/docs/java/multi-thread/images/thread-pool/线程池使用不当导致死锁.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad4f811ac8627eedfd811fd8e2d05083faaef23 GIT binary patch literal 65526 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 literal 0 HcmV?d00001 diff --git a/docs/java/multi-thread/拿来即用的线程池最佳实践.md b/docs/java/multi-thread/拿来即用的线程池最佳实践.md index 06b2ccf4..b153a7bf 100644 --- a/docs/java/multi-thread/拿来即用的线程池最佳实践.md +++ b/docs/java/multi-thread/拿来即用的线程池最佳实践.md @@ -182,11 +182,9 @@ Finished all threads 上面的代码可能会存在死锁的情况,为什么呢?画个图给大家捋一捋。 -试想这样一种极端情况: +试想这样一种极端情况:假如我们线程池的核心线程数为 **n**,父任务(扣费任务)数量为 **n**,父任务下面有两个子任务(扣费任务下的子任务),其中一个已经执行完成,另外一个被放在了任务队列中。由于父任务把线程池核心线程资源用完,所以子任务因为无法获取到线程资源无法正常执行,一直被阻塞在队列中。父任务等待子任务执行完成,而子任务等待父任务释放线程池资源,这也就造成了 **"死锁"**。 -假如我们线程池的核心线程数为 **n**,父任务(扣费任务)数量为 **n**,父任务下面有两个子任务(扣费任务下的子任务),其中一个已经执行完成,另外一个被放在了任务队列中。由于父任务把线程池核心线程资源用完,所以子任务因为无法获取到线程资源无法正常执行,一直被阻塞在队列中。父任务等待子任务执行完成,而子任务等待父任务释放线程池资源,这也就造成了 **"死锁"**。 - -![](images/thread-pool/7888fb0d-4699-4d3a-8885-405cb5415617.png) +![线程池使用不当导致死锁](./images/thread-pool/线程池使用不当导致死锁.png) 解决方法也很简单,就是新增加一个用于执行子任务的线程池专门为其服务。