Rumah > Java > javaTutorial > teks badan

Bagaimana untuk membuat pembolehubah storan setempat-benang dalam fungsi Java selamat-benang?

王林
Lepaskan: 2024-05-04 10:42:01
asal
1011 orang telah melayarinya

Keselamatan benang dicapai di Java melalui kelas ThreadLocal, yang menyediakan kaedah get() dan set() untuk mengakses dan menetapkan pembolehubah setempat-benang dalam salinan peribadi setiap benang. Dalam kod sampel, utas kanak-kanak memperoleh, menetapkan dan mencetak nilai pembolehubah setempat utas, dan utas utama juga mengakses pembolehubah itu, menunjukkan mekanisme keselamatan utas benang berbeza yang mengendalikan salinan mereka sendiri. Dalam amalan, pembolehubah storan setempat-benang boleh digunakan untuk menyimpan maklumat yang dikaitkan dengan urutan tertentu, seperti data sesi untuk setiap permintaan dalam pelayan web. . Pembolehubah ini dipanggil pembolehubah setempat-benang dan memastikan keselamatan benang dalam persekitaran berbilang benang.

Di Java, anda boleh menggunakan kelas Java 函数中的线程本地存储变量如何实现线程安全?ThreadLocal

untuk mencipta pembolehubah setempat benang. Kelas

ThreadLocal menyediakan kaedah get()

dan

set()

untuk mengakses dan menetapkan nilai pembolehubah setempat benang.

Contoh kod:

public class ThreadLocalExample {

    private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();

    public static void main(String[] args) {

        // 创建一个子线程
        Thread thread = new Thread(() -> {

            // 获取线程本地变量的值
            Integer value = threadLocal.get();

            // 设置线程本地变量的值
            threadLocal.set(value + 1);

            System.out.println("Thread: " + Thread.currentThread().getName() + ", Value: " + value);
        });

        // 启动子线程
        thread.start();

        // 主线程等待子线程结束
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 获取线程本地变量的值
        Integer value = threadLocal.get();

        System.out.println("Main: " + Thread.currentThread().getName() + ", Value: " + value);
    }
}
Salin selepas log masuk
Kes praktikal:

Dalam senario kehidupan sebenar, pembolehubah storan setempat benang boleh digunakan untuk menyimpan maklumat yang dikaitkan dengan urutan tertentu. Contohnya, dalam aplikasi pelayan web, setiap permintaan boleh menggunakan pembolehubah setempat-benang sendiri untuk menyimpan data sesi pengguna. Ini memastikan keselamatan utas kerana setiap utas mempunyai salinan data sesi sendiri dan tidak boleh diganggu oleh utas lain.

Perlu diingatkan bahawa kelas ThreadLocal

bergantung pada mekanisme rujukan Java yang lemah. Oleh itu, jika benang berakhir dan tiada rujukan kukuh yang menunjuk kepada pembolehubah setempat-benang, pembolehubah itu akan menjadi sampah yang dikumpul.

Atas ialah kandungan terperinci Bagaimana untuk membuat pembolehubah storan setempat-benang dalam fungsi Java selamat-benang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!