中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaWeb多線程ThreadLocal如何使用

發布時間:2022-09-26 13:47:41 來源:億速云 閱讀:114 作者:iii 欄目:開發技術

這篇文章主要介紹“JavaWeb多線程ThreadLocal如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“JavaWeb多線程ThreadLocal如何使用”文章能幫助大家解決問題。

首先ThreadLocal肯定是全局共享的:

public class Tools{
    public static ThreadLocal<String> t1 = new ThreadLocal<String>();
}

寫一個線程往ThreadLocal里面塞值:

public class ThreadLocalThread extends Thread{    private static AtomicInteger ai = new AtomicInteger();    
    public ThreadLocalThread(String name)
    {        super(name);
    }    
    public void run()
    {        try
        {            for (int i = 0; i < 3; i++)
            {
                Tools.t1.set(ai.addAndGet(1) + "");
                System.out.println(this.getName() + " get value--->" + Tools.t1.get());
                Thread.sleep(200);
            }
        }        catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }
}

寫個main函數,啟動三個ThreadLocalThread:

public static void main(String[] args) throws Exception    {
        ThreadLocalThread a = new ThreadLocalThread("ThreadA");
        ThreadLocalThread b = new ThreadLocalThread("ThreadB");
        ThreadLocalThread c = new ThreadLocalThread("ThreadC");
        a.start();
        b.start();
        c.start();
    }

看一下運行結果:

ThreadA get value--->1ThreadC get value--->2ThreadB get value--->3ThreadB get value--->4ThreadC get value--->6ThreadA get value--->5ThreadC get value--->8ThreadA get value--->7ThreadB get value--->9

看到每個線程的里都有自己的String,并且互不影響----因為絕對不可能出現數字重復的情況。用一個ThreadLocal也可以多次set一個數據,set僅僅表示的是線程的ThreadLocal.ThreadLocalMap中table的某一位置的value被覆蓋成你最新設置的那個數據而已,對于同一個ThreadLocal對象而言,set后,table中絕不會多出一個數據,這里要注意,如果第一次沒有給ThreadLocal設置值的話,是會返回null的。

關于“JavaWeb多線程ThreadLocal如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五台县| 左贡县| 邯郸县| 开化县| 呼和浩特市| 新田县| 滕州市| 东光县| 玛纳斯县| 博湖县| 新龙县| 鹤山市| 安达市| SHOW| 澄城县| 湘潭县| 涞源县| 新兴县| 商南县| 贵州省| 康保县| 漯河市| 湘乡市| 苍山县| 淅川县| 安图县| 涡阳县| 武夷山市| 中山市| 内乡县| 乐亭县| 延长县| 谢通门县| 开江县| 金华市| 通河县| 达尔| 孝昌县| 三河市| 贵州省| 台东市|