多线程问题,将Scanner的对象输入到多线程里面

如何将a和b输入到p1和p2里面,距离同理 

Match 构造函数再增加一个参数。然后再main方法中new Match("a",100,a); 这样就可以传递进去了

我猜你是想通过两个线程模拟跑步比赛的情况。。如下
public class Match extends Thread {

    private int length;

    public Match(String name, int length) {
        super(name);
        this.length = length;
    }

    @Override
    public void run() {
        for (int curLen = 0; curLen < length; curLen++) {
            System.out.println(this.getName() + " run " + curLen + "m");
        }
        System.out.println(this.getName() + " Finish!");
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个选手的名称:");
        String player1 = sc.nextLine();
        System.out.println("请输入第二个选手的名称:");
        String player2 = sc.nextLine();
        System.out.println("请输入比赛的距离:");
        int length = sc.nextInt();
        new Match(player1, length).start();
        new Match(player2, length).start();
    }

}

结果,很明显这样不公平,a是先跑的。。如果保证公平,这个就需要用到比较高级的并发控制了,可以了解下CyclicBarrier