java线程中的run方法什么时候调用

2025-04-02 08:57:15
推荐回答(3个)
回答1:

调用start()时开启线程,当该线程获取执行资源后就开始执行run方法;就是多线程会竞争资源,谁获得资源谁就执行,就是运行run方法

回答2:

源码分析:

publish class Thread implements Runnable {

    private Runnable target;

    public synchronized void start() {
         .
         .
         //调用本地方法,本地方式负责创建线程及回调run方法
         nativeCreate(this, stackSize, daemon);
         .
         .
    }
    /**
     *该方法没有明确的java代码回调痕迹,是在本地方法
     * nativeCreate(this, stackSize, daemon)中调用的
     */
    @Override
    publish void run() {
        if (target != null) {
            target.run();
        }
    }
}

回答3:

Thread对象调用 start方法后,自动调用