У меня есть обычный класс, предназначенный для доступа к одному потоку, и я хочу сделать его thread-safe
, чтобы многие потоки могли использовать один экземпляр одновременно. Есть некоторые методы и переменные уровня класса, которые я сделаю статическими и, используя locks
, сделаю их thread-safe
. Также методы, которые только используют локальные переменные, по умолчанию безопасны (каждый поток имеет свой стек).
Мой вопрос касается properties
старого класса или вообще любой переменной non-static
. Могу ли я просто использовать ThreadLocal<T>
, и каждый поток имеет свой собственный набор properties
? Конечно, я буду использовать locks
и другие проблемы thread-safety
внутри setters
(я предполагаю, что getters
безопасны).
И является ли ThreadLocal<T>
убийцей производительности?