и synchronized
в целом одинаковы, хотя они реализованы несколько иначе - в частности, в C# блокировка - это просто синтаксический сахар для вызовов Monitor.Enter/Exit, тогда как в Java нет эквивалента библиотеки.
У C# нет синхронизированных методов, хотя вы можете использовать [MethodImpl(MethodImplOptions.Synchronized)]
для достижения такого же эффекта. (Я думаю, что есть некоторые тонкие различия, но они в целом одинаковы.) Я бы не предложил использовать это на любом языке, однако, вместо этого блокируйте частные блокировки.
Другая поддержка библиотек параллелизма в .NET и Java отличается от других - примитивы Object.wait/notify/notifyAll и Monitor.Wait/Pulse/PulseAll похожи, но поддержка более высокого уровня довольно различна.
Модели памяти отличаются друг от друга - если вы не пытаетесь работать без блокировки, они достаточно близки, но правильный код без блокировки будет отличаться в .NET и Java.
Не знаю, как ответить на ваш вопрос веб-приложения ...
На самом деле, у C# есть синхронизированные методы. http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions.aspx – SLaks
Не на языке - есть поддержка атрибутов, правда, но это не часть языка. Будет редактировать. –