Maison  >  Article  >  Java  >  Quels types de barrières de mémoire Java existe-t-il ?

Quels types de barrières de mémoire Java existe-t-il ?

WBOY
WBOYavant
2023-05-11 23:19:041064parcourir

Les systèmes d'exploitation modernes sont multiprocesseurs, chaque processeur possède son propre cache, ces caches n'échangent pas d'informations avec la mémoire en temps réel. Par conséquent, les données mises en cache d’un processeur peuvent être incohérentes avec les données mises en cache d’un autre processeur. De cette façon, dans le développement multithread, un comportement anormal peut se produire. La couche inférieure du système d'exploitation fournit des barrières de mémoire pour résoudre ces problèmes.

1. Barrière LoadLoad

Pour des langages comme Load1 et LoadLoad2, il est garanti que les données lues par Load1 sont lues avant l'accès aux données lues dans Load2 et aux opérations de lecture ultérieures.

2. Barrière StoreStore

Concernant ces langages Store1, StoreStore, Store2, avant l'exécution de Store2 et de l'écriture ultérieure, il est garanti que l'opération d'écriture de Store1 peut voir les autres processeurs.

3. LoadStore Barrier

Pour un tel langage Load1, LoadStore, Store2, avant l'exécution de Store2 et des opérations d'écriture ultérieures, les données lues par Load1 sont garanties d'être lues.

4. Barrière StoreLoad

Pour un tel langage Store1, StoreLoad; avant que Load2 et toutes les opérations de lecture ultérieures soient implémentées, assurez-vous que l'entrée de Store1 peut voir tous les processeurs. Le coût est parmi les quatre types de barrières (flush buffer, clear invalidation file). Dans la plupart des implémentations de processeurs, cette barrière est une barrière universelle qui fonctionne également comme les trois autres barrières mémoire.

Quels sont les types de données de base de Java ?

Les types de données de base de Java sont divisés en :

1 Type entier, utilisé pour représenter le type de données des entiers.

2. Type à virgule flottante, un type de données utilisé pour représenter les décimales.

3. Type de caractère Le mot-clé du type de caractère est "char".

4. Le type booléen est le type de données de base qui représente les valeurs logiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer