Java,主代码在线程启动时停止

pfu*_*lop 3 java multithreading

当我在我的程序中启动一些线程时,其他一切都停止了.

这是我的线程代码......

static Thread b1 = new Thread(new Builders());
b1.run();
System.out.println("done");
Run Code Online (Sandbox Code Playgroud)

这是班级Builders.

public class Builders implements Runnable {

    static boolean busy=false;
    Random r = new Random();

    public void run() {
        try{
            busy=true;
            System.out.println("ready");
            Thread.sleep(9999);
            busy=false;
            System.out.println("done");
        }
        catch(Exception e){
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,线程启动,程序等待线程结束.我认为线程的要点是代码可以同时运行.请有人帮我理解我做错了什么.

Tud*_*dor 8

那是因为线程是以start(),而不是run()简单地调用run当前线程上的方法来启动的.所以它应该是:

static Thread b1 = new Thread(new Builders());
b1.start();
System.out.println("done");
Run Code Online (Sandbox Code Playgroud)