闈㈣瘯瀹橈細鏁版嵁搴撹繛鎺ユ睜涓轰粈涔堥兘瑕佺敤Threadlocal鍛紵
Posted 涓氫綑鑽?/a> 闈㈣瘯瀹橈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闈㈣瘯瀹橈細鏁版嵁搴撹繛鎺ユ睜涓轰粈涔堥兘瑕佺敤Threadlocal鍛紵相关的知识,希望对你有一定的参考价值。
浣犵煡閬撶殑瓒婂锛屼笉鐭ラ亾鐨勫氨瓒婂锛屼笟浣欑殑鍍忎竴妫靛皬鑽夛紒
鎴愬姛璺笂骞朵笉鎷ユ尋锛屽洜涓哄潥鎸佺殑浜轰笉澶氥€?/span>
缂栬緫锛氫笟浣欒崏
blog.csdn.net/qq_42405666
鎺ㄨ崘锛歨ttps://www.xttblog.com/?p=5186
杩欎釜闂鎴戠枒闂簡寰堜箙寰堜箙锛屼富瑕佸涓嬫埅鍥俱€?/p>
涓€涓繛鎺ュ搴斾竴涓簨鍔★紝澶氫釜杩炴帴鐨勪簨鍔℃槸涓嶄竴鏍风殑锛屽厛澶ф浜嗚В涓€涓嬶紝寰€涓嬬湅馃憞
鏈汉鏄湪瀛?Threadlocal 鐨勬椂鍊欙紝缃戜笂澶ч儴鍒嗕汉閮芥槸璇存暟鎹簱杩炴帴姹犳槸鍏稿瀷鐨勭敤浜唗hreadloca 鐨勪緥瀛愶紝鐒跺悗鎴戝氨鍙堟煡鏁版嵁搴撹繛鎺ユ睜鍜?threadloca 鐨勫叧绯伙紝浣嗘槸锛?9% 閮借 threadlocal 鏄负浜嗗湪骞跺彂鐨勬儏鍐典笅锛屼负浜嗕繚璇佺嚎绋嬪畨鍏紝鍒涘缓浜嗗壇鏈粈涔堢殑锛屽叾瀹炶繖鍙槸 threadlocal 鐨勭敤娉曚箣涓€锛屽畠杩樻湁涓敤娉曞氨鏄‘淇濆悓涓€绾跨▼涔嬮棿鍙傛暟浼犻€掔殑鏂逛究锛堟壇杩滀簡锛夈€?/p>
鍥炲綊姝i锛岃繕鏄嬁涓婇潰鐨勫浘鏉ヨ浜嬨€傘€傘€傘€?/p>
鎴戝彧璁蹭袱涓叧閿偣锛屾槑鐧戒汉涓€鐪嬪氨鎳傦細
1銆佷袱鑰呮湁鏍规湰鎬х殑鍖哄埆锛岀敤澶勪笉涓€鏍凤紒
杩炴帴姹犳槸缂撳瓨骞舵墭绠℃暟鎹簱杩炴帴锛屼富瑕佹槸涓轰簡鎻愰珮鎬ц兘銆?/p>
鑰?ThreadLocal 缂撳瓨杩炴帴锛屾槸涓轰簡鎶婂悓涓€涓暟鎹簱杩炴帴鈥滃垎浜€濈粰鍚屼竴涓嚎绋嬬殑涓嶅悓璋冪敤鏂规硶銆傦紙涓嶇璋冪敤鍝釜鏂规硶锛岄兘鏄娇鐢ㄧ殑鍚屼竴涓繛鎺ワ紝鏂逛究杩涜鈥滆法鏂规硶鈥濈殑浜嬪姟鎺у埗锛?/p>
銆屼妇涓牀瀛愶細銆?/strong>
濡傛灉涓€涓姹備腑娑夊強澶氫釜 DAO 鎿嶄綔锛岃€屽鏋滆繖浜?DAO 涓殑 Connection 閮芥槸鐙珛鐨勮瘽锛屽氨娌℃湁鍔炴硶瀹屾垚涓€涓簨鍔°€備絾鏄鏋?DAO 涓殑 Connection 鏄粠 ThreadLocal 涓幏寰楃殑锛堟剰鍛崇潃閮芥槸鍚屼竴涓璞★級锛?閭d箞杩欎簺 DAO 灏变細琚撼鍏ュ埌鍚屼竴涓?Connection 涔嬩笅銆?/p>
2銆侀噸鐐硅鐞嗚В鈥滆繛鎺ユ睜鈥濄€?/h3>
杩炴帴姹犻噷闈㈡湁涓€瀹氭暟閲忕殑杩炴帴璧勬簮锛屾瘮濡傛渶澶?0涓繛鎺ャ€?/p>
棰樺璇濓細濡傛灉鐩存帴閫氳繃 Java 鍘熺敓API 鑾峰彇鈥滅洿杩炩€濈殑璇濓細
搴曞眰鏂规硶涓€鑸兘鏄繖鏍峰啓鐨勶細
java.sql.DriverManager.getConnection(url, props);
java.sql.Driver.connect(url, props);
鐗圭偣鏄細瑕佷紶鍏rl銆佺敤鎴峰悕鍜屽瘑鐮佺瓑淇℃伅锛?/p>
杩欑鏂瑰紡锛岃偗瀹氬氨娌℃湁浣跨敤鏁版嵁搴撹繛鎺ユ睜銆?/p>
浣跨敤鏁版嵁搴撹繛鎺ユ睜锛岄€氬父閮芥槸寰楀埌涓€涓墍璋撶殑 javax.sql.DataSource
[鎺ュ彛]鐨勫疄渚嬪璞★紝瀹冮噷闈㈠寘鍚簡 Connection锛屽苟涓旀暟鎹簱杩炴帴姹犲伐鍏风被锛堟瘮濡侰3P0銆丣NDI銆丏BCP绛夛級锛岃偗瀹氭槸閲嶆柊瀹氫箟浜?getConnection銆乧loseConnection绛夋柟娉曪紝鎵€浠ヤ綘姣忔寰楀埌鐨?Connection锛屽嚑涔庨兘涓嶆槸鏂板缓绔嬬殑杩炴帴锛堣€屾槸宸茬粡寤虹珛濂藉苟鏀惧埌缂撳瓨閲岄潰鐨勮繛鎺ワ級锛屼綘璋冪敤 closeConnection 鏂规硶锛屼篃涓嶆槸鐪熸鐨勫叧闂繛鎺ワ紙涓€鑸兘鏄捣鍒颁竴涓爣璇嗕綔鐢紝鏍囪瘑褰撳墠杩炴帴宸茬粡浣跨敤瀹屾瘯锛屽綊杩樼粰杩炴帴姹狅紝璁╄繖涓繛鎺ュ浜庡緟鍒嗛厤鐘舵€侊級
PS锛氭墍浠ヨ锛氫娇鐢ㄦ暟鎹簱杩炴帴姹犳椂锛岃繕鏄鏄惧紡鐨勮皟鐢ㄦ暟鎹簱杩炴帴姹?API 鎻愪緵鐨勫叧闂繛鎺ョ殑鏂规硶銆?/p>
鐞嗚В涓€涓嬭繖鍙ヨ瘽锛?/p>
涓嶅悓鐨勭嚎绋嬪湪鍚屼竴涓椂闂达紙 鎴栬€?鍚屼竴涓嚎绋嬪湪澶氫釜鍦版柟锛変粠杩炴帴姹犱腑鎷垮埌鐨凜onnection锛岃偗瀹氫笉鏄悓涓€涓繛鎺ャ€傦紙鍙嶈繃鏉ヨ锛氫笉鍚屾椂闂寸殑涓や釜绾跨▼锛屼竴鍓嶄竴鍚庯紝鍒欐湁鍙兘鎷垮埌鍚屼竴涓繛鎺ワ級
鎬荤粨锛?/h2>
鍐嶅ソ濂界悊瑙d竴涓嬩笂闈㈢殑涓€娈佃瘽锛屾垜鍐嶆渶鍚庤В閲婁嚎涓嬨€傘€傘€?/p>
棣栧厛锛屾垜浠负浜嗛伩鍏嶅崟涓€鏁版嵁搴撹繛鎺ョ殑鍒涘缓鍜屽叧闂€楄垂鏃堕棿鍜屾€ц兘锛屽紩鍏ヤ簡鏁版嵁搴撹繛鎺ユ睜锛屾彁鍓嶅垱寤哄ソ浜?n 鏉¤繛鎺ユ斁鍏ユ睜涓紝濡傛灉鏄崟绾跨▼鎯呭喌涓嬶紝閭h繖鏍锋尯濂界殑
閭e鏋滄槸澶氱嚎绋嬫儏鍐典笅鍛紵杩樻槸涓婇潰閭f璇濓紝鍋囪鍚屼竴鏃堕棿澶氫釜绾跨▼浠庢暟鎹簱杩炴帴姹犺幏鍙栬繛鎺ワ紝閭h偗瀹氭嬁鐨勬槸涓嶅悓鐨勮繛鎺ワ紝鎴戝綋鍓嶇嚎绋嬪拰鍒殑绾跨▼鎷跨殑杩炴帴涓嶄竴鏍凤紝閭f垜褰撳墠鍦?crud 鐨勬椂鍊欙紝涓嶅湪涓€涓簨鍔′箣鍐呫€?/p>
鍋囪涓嶅悓鏃堕棿鐨勫涓嚎绋嬭浠庢暟鎹簱杩炴帴姹犳嬁杩炴帴锛岄偅杩欎釜鏃跺€欏氨鍙兘鎷垮埌鐨勬槸鍚屼竴涓繛鎺ヤ簡锛岄偅鎴戝涓嚎绋嬬嚎绋嬫嬁鍒扮殑鏄悓涓€涓繛鎺ワ紝涔熷氨鏄鍦ㄥ涓嚎绋嬪湪鍚屼竴涓簨鍔′箣鍐咃紝绾跨▼ a 鎵ц浜嗘彃鍏ヨ繕娌℃潵寰楀強鎻愪氦锛岀嚎绋?b 姝ゆ椂鏉ヤ簡涓洿鏂帮紝鍦ㄧ嚎绋?a 杩樻湭鎿嶄綔瀹屼箣鍓嶏紝绾跨▼ b 鏇存柊瀹屼簡鍚庯紝鐩存帴鎶婅繛鎺ョ粰 close 浜嗭紝绾跨▼ a 鎻掍簡涓€鍗婂彂鐜版彃涓嶄簡浜嗐€傘€傘€傛鏃惰偗瀹氬湪鎯筹紝杩欌劉鏄皝鍦ㄦ悶鎴戙€?/p>
涓轰簡纭繚涓嶅悓鏃堕棿澶氫釜绾跨▼鍙兘鎷垮埌鐨勬槸鍚屼竴涓繛鎺ワ紝閭d箞姝ゆ椂 threadlocal 闂寒鐧诲満锛屽氨绠楁垜鎷跨殑鏄€滃悓涓€涓繛鎺モ€濓紝鍦ㄥ紩鍏ヤ簡 threadlocal 鍚庯紝姣忎釜绾跨▼涔嬮棿閮戒細鍒涘缓鐙珛鐨勮繛鎺ュ壇鏈紝灏?collection 鍚勮嚜 copy 涓€浠斤紝杩欐牱灏变簰鐩镐笉骞叉壈浜嗐€?/p>
浠ヤ笂鏄垜鐨勪釜浜鸿瑙c€?/p>
鏂囩珷鏈夊府鍔╃殑璇濓紝鍦ㄧ湅锛岃浆鍙戝惂銆傝阿璋㈡敮鎸佸摕 (*^__^*锛?/p>
以上是关于闈㈣瘯瀹橈細鏁版嵁搴撹繛鎺ユ睜涓轰粈涔堥兘瑕佺敤Threadlocal鍛紵的主要内容,如果未能解决你的问题,请参考以下文章