Questions marquées «atomic»

Une opération atomique est indivisible. Ce terme est utilisé pour décrire les transactions dans les bases de données, les accès de bas niveau dans les programmes multithread et les opérations du système de fichiers, entre autres.

276
Que signifie «atomique» dans la programmation?

Dans le livre Effective Java, il indique: La spécification du langage garantit que la lecture ou l'écriture d'une variable est atomique sauf si la variable est de type longou double[JLS, 17.4.7]. Que signifie "atomique" dans le contexte de la programmation Java ou de la programmation en...

174
Qu'est-ce que std :: atomic exactement?

Je comprends que std::atomic<>c'est un objet atomique. Mais dans quelle mesure atomique? À ma connaissance, une opération peut être atomique. Qu'entend-on exactement par rendre un objet atomique? Par exemple, s'il y a deux threads exécutant simultanément le code suivant: a = a + 12; Alors...

153
Num ++ peut-il être atomique pour 'int num'?

En général, for int num, num++(ou ++num), en tant qu'opération de lecture-modification-écriture, n'est pas atomique . Mais je vois souvent des compilateurs, par exemple GCC , générer le code suivant ( essayez ici ): Puisque la ligne 5, qui correspond à num++une instruction, peut-on conclure que...

140
Le! = Check est-il sûr?

Je sais que les opérations composées telles que i++ne sont pas thread-safe car elles impliquent plusieurs opérations. Mais la vérification de la référence avec elle-même est-elle une opération thread-safe? a != a //is this thread-safe J'ai essayé de programmer cela et d'utiliser plusieurs threads...

116
AtomicInteger lazySet vs set

Quelle est la différence entre les méthodes lazySetet setde AtomicInteger? La documentation n'a pas grand-chose à dire sur lazySet: Définit finalement la valeur donnée. Il semble que la valeur stockée ne sera pas immédiatement définie sur la valeur souhaitée, mais qu'elle sera plutôt programmée...

106
Le fichier append est-il atomique sous UNIX?

En général, que pouvons-nous prendre pour acquis lorsque nous ajoutons à un fichier sous UNIX à partir de plusieurs processus? Est-il possible de perdre des données (un processus écrasant les modifications de l'autre)? Est-il possible que les données soient mutilées? (Par exemple, chaque processus...

91
coût d'opération atomique

Quel est le coût de l'opération atomique (n'importe laquelle des opérations de comparaison et d'échange ou d'ajout / décrémentation atomique)? Combien de cycles consomme-t-il? Interrompra-t-il d'autres processeurs sur SMP ou NUMA, ou bloquera-t-il les accès à la mémoire? Videra-t-il le tampon de...

12
Initialisation du vecteur atomique

Considérer: void foo() { std::vector<std::atomic<int>> foo(10); ... } Le contenu de foo est-il maintenant valide? Ou dois-je les parcourir explicitement et les initialiser? J'ai vérifié Godbolt et ça semble bien, mais la norme semble être très confuse sur ce point. Le constructeur std...