Articles of synchronisée

Exécution de wait () sur une instance de thread à partir de main () en Java

Je suis en train de jouer avec la version chronométrée de wait () dans java.lang.Object et j’ai constaté qu’elle agit différemment dans deux scénarios différents. Scénario 1: Utilisation de la définition par défaut de run () dans Thread public static void main (Ssortingng[] args) throws InterruptedException { Thread t = new Thread(); t.start(); System.out.print(“X”); synchronized(t) […]

Java supprime-t-il / optimise-t-il les instructions synchronisées inutiles?

Imaginons que quelqu’un synchronise une méthode renvoyant un int: int whatever = 33; … public synchronized int getWathever() { return this.whatever; } Nous soaps d’après les spécifications Java que les ints sont modifiés de manière atomique. Par conséquent, l’instruction synchronized n’est pas nécessaire. Les compilateurs vont-ils l’enlever / l’optimiser?

Fils Java et blocs synchronisés

Supposons que j’exécute un bloc de code synchronized dans un thread et que j’appelle une méthode qui génère un autre thread pour traiter un bloc de code synchronisé qui requirejs le même verrou que la première méthode. Donc, en pseudo-code Java: public void someMethod() { synchronized(lock_obj) { // a whole bunch of stuff… // this […]

Incapable de comprendre l’object de classe

La documentation Oracle Java sur les verrous et la synchronisation insortingnsèques indique: Vous pourriez vous demander ce qui se passe lorsqu’une méthode statique synchronisée est appelée, puisqu’une méthode statique est associée à une classe et non à un object. Dans ce cas, le thread acquiert le verrou insortingnsèque pour l’object Class associé à la classe. […]

Comment synchroniser une méthode statique en Java

Je viens avec cette question lors de la mise en œuvre du modèle singleton en Java. Bien que l’exemple ci-dessous ne soit pas mon vrai code, il est pourtant très similaire à celui d’origine. public class ConnectionFactory{ private static ConnectionFactory instance; public static synchronized ConnectionFactory getInstance(){ if( instance == null ){ instance = new ConnectionFactory(); […]

Verrouiller un object mutable – Pourquoi est-ce considéré comme une mauvaise pratique?

Voir cette réponse . Ça dit: Six très mauvais exemples; … locking sur un champ mutable. par exemple, synchronisé (object) {object = …; } Quel est le problème avec le locking sur un champ mutable? Et si l’ object était déclaré comme final mais n’était pas une classe immuable?

Utilisation déroutante de synchronisé en Java: modèle ou anti-modèle?

Je suis en train de réviser le code pour modifier un produit Java que je ne possède pas. Je ne suis pas un expert de Java, mais je soupçonne fortement que cela est inutile et indique un malentendu fondamental sur le fonctionnement de la synchronisation. synchronized (this) { this.notify(); } Mais je peux me tromper, […]

Coût de la synchronisation

Dans un programme Java hautement concurrentiel et en supposant que mes méthodes soient correctement écrites et synchronisées, je me demande comment déterminer lequel est le meilleur: void synchronized something() { … } ou void something() { synchronized(this) { … } // here do stuff no requiring synchronization . . // do computation ‘A’ . synchronized(this) […]

Différence entre la synchronisation des lectures sur le terrain et la lecture volatile

Dans un bel article avec quelques astuces de concurrence , un exemple a été optimisé pour les lignes suivantes: double getBalance() { Account acct = verify(name, password); synchronized(acct) { return acct.balance; } } Si je comprends bien, le but de la synchronisation est de s’assurer que la valeur de acct.balance lue par ce fil est […]

Ce fil de classe java est-il sûr?

Ce n’est pas un devoir pour moi , c’est une tâche confiée à des étudiants d’une université. Je suis intéressé par la solution par intérêt personnel. La tâche consiste à créer une classe (Calc) contenant un entier. Les deux méthodes add et mul doivent append ou multiplier cet entier. Deux threads sont mis en place […]