Articles of volatile

Garanties volatiles et exécution hors service

IMPORTANT Je sais à propos du “passe avant” dans le thread où les deux assignations se produisent, ma question est la suivante: serait-il possible qu’un autre thread lise “b” non nul alors que “a” est toujours nul. Donc, je sais que si vous appelez doIt () depuis le même thread que celui sur lequel vous […]

Quand est-il préférable d’utiliser un booléen volatile en Java plutôt que AtomicBoolean?

J’ai examiné les autres questions volatiles vs Atomicxxxx dans SO (y compris celle-ci ) et j’ai lu la description de java.util.current.atomic , et je ne suis pas tout à fait satisfait des nuances. Si j’essaie de décider entre l’utilisation de volatile boolean et AtomicBoolean , y a-t-il des différences pratiques en dehors des opérations atomiques […]

Est-ce qu’un volatil int dans Java thread-safe?

Est-ce qu’un volatil int dans Java thread-safe? Autrement dit, peut-il être lu et écrit en toute sécurité sans être verrouillé?

Y a-t-il un intérêt à utiliser un volatil long?

J’utilise occasionnellement une variable d’instance volatile lorsque j’ai deux threads en train de lire / d’écrire dessus et que je ne veux pas que la surcharge (ou le risque de blocage potentiel) prenne un verrou; Par exemple, un thread de temporisation met à jour périodiquement un identifiant int qui est affiché en tant que getter […]

Comment est-ce que je comprends les barrières de mémoire de lecture et volatiles

Certains langages fournissent un modificateur volatile décrit comme effectuant une “barrière de mémoire de lecture” avant de lire la mémoire qui sauvegarde une variable. Une barrière de mémoire de lecture est généralement décrite comme un moyen de s’assurer que le processeur a effectué les lectures demandées avant la barrière avant d’effectuer une lecture demandée après […]

Exemple le plus simple et compréhensible de mot-clé volatile en Java

Je suis en train de lire sur le mot-clé volatile en Java et je comprends parfaitement la partie théorique. Mais ce que je cherche, c’est un bon exemple, qui montre ce qui se passerait si la variable n’était pas volatile et si c’était le cas. Sous l’extrait de code ne fonctionne pas comme prévu ( […]

Volatile Struct Semantics

Est-il suffisant de déclarer une instance d’une variable de type structure comme volatile (si ses champs sont accédés dans le code rentrant), ou faut-il déclarer des champs spécifiques de la structure comme volatiles? Formulé différemment, quelles sont les différences sémantiques (le cas échéant) entre: typdef struct { uint8_t bar; } foo_t; volatile foo_t foo_inst; et […]

Est-il permis à un compilateur d’optimiser une variable volatile locale?

Le compilateur est-il autorisé à optimiser ceci (selon la norme C ++ 17): int fn() { volatile int x = 0; return x; } pour ça? int fn() { return 0; } Si oui, pourquoi? Si non, pourquoi pas? Voici quelques reflections sur ce sujet: les compilateurs actuels comstacknt fn() tant que variable locale placée […]

Volatile Vs Atomic

J’ai lu quelque part sous la ligne. Java volatile mot-clé ne signifie pas atomique, sa fausse idée selon laquelle, après avoir déclaré volatile, l’opération ++ sera atomique, pour rendre l’opération atomique, vous devez toujours assurer un access exclusif en utilisant une méthode synchronized ou un bloc en Java. Alors, que se passera-t-il si deux threads […]

Quand exactement utilisez-vous le mot-clé volatile en Java?

J’ai lu ” Quand utiliser” volatile “en Java? ” Mais je suis toujours confus. Comment savoir quand je devrais marquer une variable volatile? Que se passe-t-il si je me trompe, soit en omettant un volatil sur quelque chose qui en a besoin ou en mettant de la volatilité sur quelque chose qui ne l’est pas? […]