线程 - 多线程

时间:2014-10-09 16:34:12

标签: java multithreading

我是线程的新手,我刚写了一个简单的程序来理解这个概念,这个程序给我的输出为:

一 四 三 回到主要 二 主

public class Sample_thread{
    public static void main(String[] args){     
        Runnable m= new Master();
        Thread master =  new Thread(m);

        Runnable p1 = new one();
        Thread t1 =  new Thread(p1);    

        Runnable p2 = new two();
        Thread t2 =  new Thread(p2);

        Runnable p3 = new Three();
        Thread t3 =  new Thread(p3);

        Runnable process_4 = new Four();
        Thread t4 =  new Thread(p4);

        master.start();
        t1.start();
        t2.start();
        t3.start();
        t4.start();

        System.out.println("Back in main");     
    }   
}

我在每个线程的run方法中打印线程名称。为什么订单在显示中改变了?

我认为它会显示为

主 一 二 三 四 回到主要

任何人都能解释一下这个吗?这是因为我没有提到同步??

2 个答案:

答案 0 :(得分:1)

这是你通过并发获得的行为。线程“同时”运行,但未定义顺序。

您可能希望阅读Oracle Concurrency Tutorial

答案 1 :(得分:1)

使用多个线程的重点是执行很多独立的操作,这些操作可以按任何顺序发生。如果您希望以设置顺序输出,则可以在一个线程中使用循环。