Existe-t-il des différences entre les options & # 8220; synchronized & # 8221; de Java? et le verrou & # 8220; de C # & # 8221 ;?

StackOverflow https://stackoverflow.com/questions/217707

  •  03-07-2019
  •  | 
  •  

Question

Ces deux mots clés ont-ils exactement le même effet, ou y a-t-il quelque chose que je devrais être au courant?

Était-ce utile?

La solution

, les blocs de code C # lock et Java synchronisés sont "sémantiquement identiques", tandis que pour les méthodes, Java utilise synchronisé tandis que C # utilise un attribut: [MethodImpl (MethodImplOptions.Synchronized)] .

Autres conseils

Une différence intéressante non couverte dans le lien posté par Keeg: autant que je sache, il n'y a pas d'appels équivalents à la méthode en Java pour .NET Monitor.Enter et Monitor.Exit , auquel revient l'instruction C # verrouiller . Cela signifie que vous ne pouvez pas utiliser l'équivalent de Monitor. TryEnter - bien que le paquetage java.util.concurrent.locks (à partir de la version 1.5) dispose de nombreux verrous offrant davantage de fonctionnalités.

Je java vous n'avez pas à vous soucier de verrouiller les types publics que vous possédez.

Dans .NET, vous

Mis à jour: il s’agit des types que vous possédez. Verrouiller des types publics que vous ne possédez pas est mauvais dans toutes les langues:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top