lock
et synchronized
sont globalement les mêmes, même si elles sont mises en œuvre un peu différemment - en particulier en C# serrure est juste du sucre syntaxique pour les appels vers Monitor.Enter/sortie, alors qu'en Java il n'y a pas d'équivalent de la bibliothèque.
C# n'a pas de méthodes synchronisées, bien que vous puissiez utiliser [MethodImpl(MethodImplOptions.Synchronized)]
pour obtenir le même résultat. (Je pense qu'il y a quelques différences subtiles, mais elles sont globalement les mêmes.) Je ne suggérerais pas d'utiliser ceci dans les deux langues, cependant - verrouiller les verrous privés à la place. L'autre support de bibliothèque de concurrence dans .NET et Java est plus éloigné - les primitives de Object.wait/notify/notifyAll et de Monitor.Wait/Pulse/PulseAll sont similaires, mais le support de niveau supérieur est assez différent. Les modèles de mémoire sont subtilement différents - si vous n'essayez pas de travailler sans verrouillage, ils sont assez proches, mais le code sans verrouillage correct serait différent en .NET et en Java.
Vous ne savez pas exactement comment répondre à votre point d'application Web ...
En réalité, C# possède des méthodes synchronisées. http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions.aspx – SLaks
Pas dans la langue - il y a un support d'attribut, certes, mais ça ne fait pas partie du langage. Éditera. –