Мой проект java appengine не сохраняет никакого состояния между запросами, за исключением следующих случаев использования Memcache:
if (кэш памяти не считает, что задача очистки уже запущена) запланировать другую задачу очистки
). У меня нет глобальных / статических ссылок на какие-либо объекты, кроме:
статическом объекте ThreadLocal
. Это означает, что каждый запрос будет получать свою собственную копию пользователя, не так ли? статическом объекте DataCoordinator
. На что мне нужно обратить внимание, чтобы сделать мой код потокобезопасным? Нужно ли мне вставлять ключевое слово synchronized
в каждое объявление метода в моей реализации DataCoordinator
, поскольку к нему могут обращаться несколько потоков? Верно ли, что объект ThreadLocal
всегда будет создавать отдельный объект User
для каждого потока, так что каждый запрос будет аутентифицироваться отдельно?
Я всего лишь новичок в потокобезопасном мышлении. Что я должен прочитать?
Спасибо за любую помощь и извините за отсутствие конкретики.