Следует ли блокировать вызовы общедоступных общих функций для обеспечения безопасности потоков - PullRequest
0 голосов
/ 17 января 2012

Как в заголовке. Должны ли быть заблокированы вызовы общедоступных общих функций для обеспечения безопасности потоков?

Ответы [ 3 ]

2 голосов
/ 17 января 2012

Да, если ваши публичные общие библиотеки используют переменные уровня класса, и нет, если они используют локальные переменные.

1 голос
/ 05 декабря 2017

Если ваш класс является компонентом или компонентом и работает в многопоточной среде, такой как сервер Tomcat, то функция (объект) должна быть заблокирована, если она записывает данные в общую память

0 голосов
/ 17 января 2012

Нет.

Во-первых, они могут даже не нуждаться в блокировке.

Во-вторых, если пользователи вашей функции не являются многопоточными, то вы платите за блокировку бесполезно.

Вы должны четко задокументировать, является ли функция поточно-ориентированной или нет, и позволить пользователям принимать решение. Для примера Java см. Структуру коллекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...