多线程:线程类的方法做什么
嗨!今天,我们将继续讨论多线程。让我们来检查线程类及其一些方法的工作。当我们之前研究类方法时,我们通常只是写这个:<方法名称> -> <方法的作用>。
这不适用于Thread
的方法 :) 它们有更复杂的逻辑,如果没有几个例子,你就无法理解。
Thread.start()方法
让我们从重复自己开始。您可能还记得,您可以通过让您的类继承Thread
类并覆盖run()
方法来创建一个线程。但它当然不会自己启动。为此,我们调用对象的start()
方法。
让我们回顾一下上一课中的例子:
public class MyFirstThread extends Thread {@Overridepublic void run() {System.out.println("Thread executed: " + getName());}
}public class Main {public static void main(String[] args) {for (int i = 0; i < 10; i++) {MyFirstThread thread = new MyFirstThread();thread.start();}}
}
注意:要启动线程,您必须调用特殊的start()
方法,而不是run()
方法!这是一个容易犯的错误,特别是当你刚开始学习多线程时。在我们的示例中,如果您调用run()
方法10次而不是start()
您将得到以下:
public class Main {public static void main(String[] args) {for (int i = 0; i < 10; i++) {MyFirstThread thread = new MyFirstThread();thread.run(