notes d'étude de classe atomique java

Java SE5 a introduit des classes de variables atomiques spéciales telles que AtomicInteger, AtomicLong et AtomicReference. Ces classes sont atomiques au niveau de la machine. Ils sont rarement utilisés dans la programmation conventionnelle, mais ils sont très utiles pour le réglage des performances.

public class AtomicIntegerTest implements Runnable{
    
    
    private AtomicInteger i=new AtomicInteger(0);
    public int getValue() {
    
    return i.get();}
    private void evenIncrement() {
    
    i.addAndGet(2);}
    public void run() {
    
    
    	while(true) {
    
    
    		evenIncrement();
    	}
    }
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
        new Timer().schedule(new TimerTask() {
    
    
        	public void run() {
    
    
        		System.err.println("absorting");
        		System.exit(0);
        	}
        },5000);
        AtomicIntegerTest ait=new AtomicIntegerTest();
        ExecutorService exec=Executors.newCachedThreadPool();
        exec.execute(ait);
        while(true) {
    
    
        	int val=ait.getValue();
        	if(val%2!=0) {
    
    
        		System.out.println(val);
        		System.exit(0);
        	}
        }
	}

}

Ce programme utilise la classe atomique AtomicInteger et élimine l'utilisation du mot clé synchronized. Il n'échouera pas. Par conséquent, la classe Timer est utilisée pour terminer automatiquement le programme après 5 secondes.

Les principes détaillés des classes atomiques peuvent être trouvés dans les blogs suivants d'autres bigwigs:

Classe atomique

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43916777/article/details/104294165
conseillé
Classement