Подтвердить что ты не робот

Существуют ли различия между Java "synchronized" и С# "lock"?

У этих двух ключевых слов есть точно такой же эффект, или есть что-то, о чем я должен знать?

4b9b3361

Ответ 2

Одно интересное отличие, не описанное в ссылке, опубликованной Keeg: насколько мне известно, нет никаких вызовов эквивалентных методов в Java для .NET Monitor.Enter и Monitor.Exit, с чем сводится инструкция С# lock. Это означает, что вы не можете выполнить эквивалент Monitor.TryEnter - хотя, конечно, пакет java.util.concurrent.locks(с момента 1.5) имеет множество замков, которые имеют больше доступных функций.

Ответ 3

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

В .NET вы должны

Обновлено: это для типов, которыми вы владеете. Блокирование общедоступных типов, которые вы не владеете, плохо на любом языке:)