0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

Thread Local در برنامه های جاوا چگونه استفاده می شود و چه کاربردی دارد؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

Thread Local در حقیقت شبیه یک scope است (مانند request scope یا session scope) و می توان به آن thread scope گفت. اشیائی که از کلاس ThreadLocal ساخته می شوند مانند یک map عمل می کنند و قابلیت ذخیره سازی هر شئی را برای هر thread دارند، کلاس ThreadLocal را می توان شبیه یک map تصور کرد که کلید آن یک thread و مقادیر آن اشیاء می باشد.

معمولا از کلاس ThreadLocal یک متغیر استاتیک در یک کلاس تعریف می شود و با استفاده از متدهای set و get که کلاس ThreadLocal دارد یک نوع خاص (مانند ThreadData) درون آن set و get می شود:

public class ThreadLocalUtil {

    private final static ThreadLocal<ThreadData> THREAD_DATA = new ThreadLocal<ThreadData>() {

        @Override
        protected ThreadData initialValue() {
            return new ThreadData();
        }
    };

    public static ThreadData getThreadData() {
        return THREAD_DATA.get();
    }

    public static void setThreadData(ThreadData data) {
        THREAD_DATA.set(data);
    }

    public static void destroy() {
        THREAD_DATA.remove();
    }

    private static class ThreadData {

        private String someDate;

        public ThreadData() {
        }
        
        public void setSomeDate(String someDate) {
            this.someDate = someDate;
        }

        public String getSomeDate() {
            return someDate;
        }
        
    }
}

سوالات مشابه

0 امتیاز
0 پاسخ 291 بازدید
+2 امتیاز
1 پاسخ 692 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط kapitan (25 امتیاز)
+1 امتیاز
1 پاسخ 929 بازدید
0 امتیاز
0 پاسخ 313 بازدید
0 امتیاز
1 پاسخ 2.6هزار بازدید
0 امتیاز
2 پاسخ 1.3هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط javaa (127 امتیاز)
0 امتیاز
1 پاسخ 485 بازدید
+1 امتیاز
1 پاسخ 698 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
0 امتیاز
1 پاسخ 245 بازدید
...