Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 27855|Відповідь: 1

[Джерело] Java ThreadЛокальні принципи та багатопотокове повторне використання призводять до захаращення даних

[Копіювати посилання]
Опубліковано 01.11.2021 11:45:36 | | | |
У програмуванні ми визначаємо параметри методу для передачі вмісту змінних, якщо рівень методу виконання глибокий, то кожен метод має визначити параметри для передачі, на цей момент деякі змінні можна передавати через ThreadLocal, якщо всі методи виконуються на одному потоку, значення ThreadLocal можна встановити і прочитати.

Клас ThreadLocal використовується для надання локальних змінних всередині потоку. Коли ці змінні доступні (get/set) у багатопотоковому середовищі, змінні в кожному потоці є відносно незалежними від змінних в інших потоках.

ThreadLocal спочатку отримає поточний потік (Thread t = Thread.currentThread()) під час виконання методу набору, і використовує поточний потік для отримання ThreadLocalMap; якщо карта не є порожньою, це означає, що поточний потік має раніше зв'язану карту, потім оновить значення цієї карти, якщо ні — використати себе як ключ для внесення значення у карту, щоб реалізувати зв'язування змінних і потоків.



Тестуйте код, встановіть пул потоків так, щоб підтримувати максимум 5 потоків, і коли ми викликаємо метод отримання ThreadLocal у випадку багатопотокності, отримаємо дані ThreadLocal (Дані набираються іншими потоками), насМетод набору ThreadLocal не викликається на поточному потоку для встановлення даних, як показано на рисунку нижче:



Причини помилок:Після повторного використання потоку, ймовірно, перше значення, отримане з ThreadLocal, є значенням, що залишилося від інших попередніх потоків

Бо після того, як ми закінчимо з ThreadLocal у поточній темі,Обов'язково зателефонуйте в службу видалення на своєчасне очищення。 Як показано нижче:



Код:

(Кінець)





Попередній:Docker дивиться на налаштування перезапуску контейнерів і контейнери для масової зупинки
Наступний:Дженкінс (5) Презентація проєктної групи
Опубліковано 02.11.2021 21:30:12 |
Приходьте вчитися знову.
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com