لقد كانت مسألة الحفاظ على الكائنات دائمًا مصدر قلق بالنسبة لنا عند إجراء أبحاث البرامج. نفس العملية موجودة أيضًا في ThreadLocal، حيث يمكننا تخزين واسترجاع الكائنات. يتطلب هذا فهمًا معينًا لـ ThreadLocal واستخدام الطريقة المحددة الخاصة به. سنشرح أدناه خطوات التشغيل الكاملة لتخزين ThreadLocal والحصول عليه، ومشاركة المحتوى المحدد معك.
1. طريقة تعيين ThreadLocal
مجموعة الفراغ العامة (قيمة T) { الموضوع t = Thread.currentThread(); ThreadLocalMap Map = getMap(t); إذا (الخريطة != فارغة) Map.set(this, value); آخر createMap(t, value); }
من خلال طريقة تعيين ThreadLocal، يمكننا أن نرى أنه في بنية ThreadLocalMap <k، v>، يقوم المفتاح بتخزين ThreadLocal نفسه، والقيمة هي القيمة المخزنة الفعلية. وبعبارة أخرى، يتم نسخ نسخة من المتغير بواسطة يتم تخزين ThreadLocal الحالي في ThreadLocalMap.
2. لا يقوم ThreadLocal نفسه بتخزين القيم قيد الاستخدام، ويتم استخدام ThreadLocal كمفتاح للحصول على القيمة من ThreadLocalMap، ويمكن رؤية ذلك أيضًا من خلال طريقة الحصول على ThreadLocal:
الحصول على T العام () { الموضوع t = Thread.currentThread(); ThreadLocalMap Map = getMap(t); إذا (الخريطة != فارغة) { ThreadLocalMap.Entry e = Map.getEntry(this); إذا (ه! = فارغة) { @SuppressWarnings("تم إلغاء التحديد") نتيجة T = (T) e.value؛ نتيجة الإرجاع؛ } } إرجاع setInitialValue(); }
ما ورد أعلاه هو تخزين الكائنات واكتساب Java ThreadLocal. المفتاح هو إتقان استخدام المجموعة. إذا لم تكن ماهرًا بدرجة كافية في هذه الطريقة، فيجب عليك التدرب أكثر بعد الفصل.