Skip to content

aboat : JUC/src/main/java/com/mashibing/juc/c_026_00_interview/A1B2C3/T12_00_Exchanger_Not_Work.java #1

@EverOnce

Description

@EverOnce

如下编写后exchanger can work

package com.mashibing.juc.c_026_00_interview.A1B2C3;

import java.util.concurrent.Exchanger;

public class T12_00_Exchanger {
    private static Exchanger<String> exchanger = new Exchanger<>();

    public static void main(String[] args) {
        char[] aI = "1234567".toCharArray();
        char[] aC = "ABCDEFG".toCharArray();

        new Thread(()->{
            String t = "T1";
            for(int i=0; i<aI.length; i++) {
                if ("T1".equals(t))
                    System.out.print(aI[i]);
                else
                    i--;
                try {
                    t = exchanger.exchange(t);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();

        new Thread(()->{
            String t = "T2";
            for(int i=0; i<aC.length; i++) {
                try {
                    t = exchanger.exchange(t);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if ("T1".equals(t))
                    System.out.print(aC[i]);
                else
                    i--;
            }
        }).start();
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions