今天就跟大家聊聊有關(guān)java項(xiàng)目中ThreadLocal無(wú)法取值的原因有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為武城等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及武城網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站制作、武城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!1.兩種原因
第一種,也是最常見(jiàn)的一種,就是多個(gè)線程使用ThreadLocal
第二種,類(lèi)加載器不同造成取不到值,本質(zhì)原因就是不同類(lèi)加載器造成多個(gè)ThreadLocal對(duì)象
public class StaticClassLoaderTest { protected static final ThreadLocal<Object> local = new ThreadLocal<Object>(); //cusLoader加載器加載的對(duì)象 private Test3 test3; public StaticClassLoaderTest() { try { test3 = (Test3) Class.forName("gittest.Test3", true, new cusLoader()).newInstance(); } catch (Exception e) { e.printStackTrace(); } } public Test3 getTest3() { return test3; } public static void main(String[] args) { try { //默認(rèn)類(lèi)加載器加載StaticClassLoaderTest,并設(shè)置值 StaticClassLoaderTest.local.set(new Object()); new StaticClassLoaderTest().getTest3(); } catch (Exception e) { e.printStackTrace(); } } //自定義類(lèi)加載器 public static class cusLoader extends ClassLoader { @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { if (name.contains("StaticClassLoaderTest")) { InputStream is = Thread.currentThread().getContextClassLoader() .getResourceAsStream(name.replace(".", "/") + ".class"); ByteArrayOutputStream output = new ByteArrayOutputStream(); try { IOUtils.copy(is, output); return defineClass(output.toByteArray(), 0, output.toByteArray().length); } catch (IOException e) { e.printStackTrace(); } } return super.loadClass(name, resolve); } } }
新聞名稱(chēng):java項(xiàng)目中ThreadLocal無(wú)法取值的原因有哪些-創(chuàng)新互聯(lián)
URL分享:http://aaarwkj.com/article24/pjsce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、做網(wǎng)站、軟件開(kāi)發(fā)、網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容