JAVA - 使10个线程同时运行以增加计数器1-10

时间:2015-10-23 11:04:59

标签: java multithreading

我需要JAVA中的10个线程同时运行以从1-10增加计数器。

我的代码正常运行。但是,计数器总是处于不同的顺序。

public class Counter
{

    static Thread[] threads = new Thread[10];
    public static void main(String[] args)
    {
        Count c = new Count();
        for(int i=0;i<10;i++)
        {
            threads[i] = new Thread(c);
            threads[i].start();
        }

    }
}

public class Count implements Runnable {
    int n=1;

    @Override
    public void run() {
        System.out.println(n++);
    }

    public void showOutput(){
        System.out.println(n++);
    }

}

输出示例:2 4 3 1 5 9 8 6 7 10

3 个答案:

答案 0 :(得分:5)

线程是异步的,可以独立工作。 除非使用某些同步方法,否则不保证在不同线程中执行任何操作的任何顺序。你的代码工作正常。

答案 1 :(得分:-1)

使用Join()函数同步运行线程在循环中添加以下代码

try {
    threads[i].join();
} catch (InterruptedException e) {
    e.printStackTrace();
}

希望这有帮助!

由于 -vivek

答案 2 :(得分:-3)

您可以使用同步线程

@Override
public synchronized void run() {
    System.out.println(n++);
}