C #: мне нужно заблокировать статический класс при доступе из отдельных потоков? - PullRequest
4 голосов
/ 14 июня 2010

У меня есть статический класс с несколькими методами, которые просто принимают байтовый массив, анализируют его и возвращают структуру.Мне нужно вызывать эти методы из многих отдельных потоков.Нужно ли использовать lock () или какую-то многопоточность в методах?Я не могу обдумать это.

Ответы [ 3 ]

3 голосов
/ 14 июня 2010

Если ваш метод реентерабельный , вам не нужны блокировки.

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

0 голосов
/ 14 июня 2010

Если ваши методы имеют общий ресурс, вам нужно синхронизировать доступ к нему. В вашем случае нет общего ресурса и, следовательно, не нужно ничего блокировать.

0 голосов
/ 14 июня 2010

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

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