小编Jea*_*ean的帖子

对线程行为有点困惑

我在Thread中编写了一个基本代码,我得到的输出非常令人惊讶.

public class ThreadImp implements Runnable{

    public static void main(String[] args) {
        ThreadImp threadImp = new ThreadImp();
        Thread t =new Thread(threadImp);
        t.setName("Fred");
        t.start();
        threadImp.run();
        t.run();

    }
    public void run(){
        System.out.println("Current Thread: "+ Thread.currentThread());
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待的输出是它将打印

当前线程:线程[main,5,main]

当前线程:线程[Fred,5,main]

当前线程:线程[main,5,main]

这个结果我可以理解,我只创建了一个线程,即Thread Fred.其他两个run方法调用就像调用普通方法一样.

但我无法理解的是,当我执行相同的程序时,我得到以下输出.所以任何人都可以向我解释为什么它会像这样.

当前线程:线程[main,5,main]

当前线程:线程[Fred,5,main]

java multithreading

7
推荐指数
1
解决办法
140
查看次数

标签 统计

java ×1

multithreading ×1