Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以修改主线程的run方法吗_Java - Fatal编程技术网

Java 我可以修改主线程的run方法吗

Java 我可以修改主线程的run方法吗,java,Java,我很想知道是否可以像在其他线程中一样修改主线程的run方法,我们重写run方法并定义所需的行为 我还想知道,我们在main方法中编写的代码是否真的被添加到了主线程的run方法中,因为这是主线程运行时执行的。通常,在整个应用程序生命周期中不使用main方法。您只需使用它初始化并运行其他线程,然后让它终止: class Main { public static void main(String[] args) { new firstThreadImplementation().start

我很想知道是否可以像在其他线程中一样修改主线程的run方法,我们重写run方法并定义所需的行为


我还想知道,我们在main方法中编写的代码是否真的被添加到了主线程的run方法中,因为这是主线程运行时执行的。

通常,在整个应用程序生命周期中不使用main方法。您只需使用它初始化并运行其他线程,然后让它终止:

class Main {
  public static void main(String[] args) {
    new firstThreadImplementation().start();
    // new secondThreadImplementation().start();
    new initGuiThread().start();
    // we are finished here and don't need this thread anymore
  }
}

因此,您可以直接控制已启动线程的
run()
方法。

否,您不能覆盖用于执行
main()
方法的线程。这个线程是通过JVM magic产生的,它的
run()
方法从未被调用(更准确地说,它的
start()
方法从未被调用;您可以在源代码中看到一个注释)。它的存在只是为了维护一个常规的线程模型(即,每个线程都可以调用
thread.currentThread()
,然后取回一些东西)。

您的问题不清楚。如果您举一个例子说明“运行主线程”的作用以及您希望如何修改它,这可能会有所帮助。请参阅。您的意思是什么?您可以创建传入可运行对象的新线程。每个runnable都可以拥有您想要的任何东西in@MiserableVariableI意思是说,既然main是一个线程,并且必须有自己的运行方法才能使线程运行,那么我们可以修改它的运行方法以控制它的行为吗?我认为如果你清楚地描述你的问题,你会得到更多的关注,因为你在问题中所问的似乎更像是你已经确定的一个可能的解决方案。