Независимо от того, является ли метод потокобезопасным или нет, зависит от того, обращается ли он к общим ресурсам (статические переменные e.x, ..). Нет ничего общего с тем, является ли метод статическим.
В вашем случае не обязательно указывать, является ли изменение sc
безопасным потоком или нет. Это зависит от того, как этот параметр создается и передается методу. В большинстве случаев это проблематично, если переданный параметр является общим. Когда мы разрабатываем функцию, мы должны гарантировать, что нет проблемы независимо от того, как эта функция используется.
С вашим lock
(я предполагаю, что _lock
является статической переменной), вы все равно не достижения нити безопасности, если sc
разделяет и модифицирован где-то в другом потоке.
С помощью метода имени modifySharedResource
(параметр совместно), я совершенно уверен, что есть проблема, если параметр также изменен где-то в другом потоке.
В общем, это плохая практике, чтобы изменить входные параметры: https://softwareengineering.stackexchange.com/questions/245767/is-it-an-antipattern-modifying-an-incoming-parameter
выглядит как синглтон? – user1666620
независимо от того, является ли метод потокобезопасным или нет, зависит от того, обращается ли он к общим ресурсам (статические переменные e.x, ..). Не имеет никакого отношения к тому, является ли метод статическим –
какой-либо другой метод может в настоящее время воздействовать на объект 'sc'. Использование блокировки в обоих местах гарантирует, что эти операции не будут выполняться одновременно. – Jonesopolis