CodeNote_1.0.3_Exchange mit Exchange im Exchanger

Definition

Der Name bedeutet Austausch . Exchanger wird verwendet, um Daten zwischen zwei Threads auszutauschen. Der Thread blockiert den Exchanger, bis ein anderer Thread ebenfalls die Exchange- Methode in Exchanger eingibt.

Code

package JavaNote_101;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Exchanger;

public class Java_103_Exchanger {
    
    
    public static void main(String[] args) {
    
    
        final Exchanger<List<Integer>> exchanger =new Exchanger<List<Integer>>();
        new Thread(){
    
    
            @Override
            public void run() {
    
    
                List<Integer> l = new ArrayList<Integer>(2);
                l.add(1);
                l.add(2);
                try {
    
    
                    l = exchanger.exchange(l);
                }catch (InterruptedException e){
    
    
                    e.printStackTrace();
                }
                System.out.println("Thread 1"+l);
            }
        }.start();
        new Thread(){
    
    
            @Override
            public void run() {
    
    
                List<Integer> l = new ArrayList<Integer>(2);
                l.add(4);
                l.add(5);
                try {
    
    
                    l = exchanger.exchange(l);
                }catch (InterruptedException e){
    
    
                    e.printStackTrace();
                }
                System.out.println("Thread 2"+l);
            }
        }.start();
    }
}

Supongo que te gusta

Origin blog.csdn.net/h201601060805/article/details/130754236
Recomendado
Clasificación