通过继承java.lang包下的Thread类,重写该类下的run()方法,在run()方法中实现运行在线程上的代码。
当还是运行run()方法的时候,程序则是按照先后顺序运行下去;
代码:
package Demo20220308;
public class Test {
static class MyThread extends Thread{
public void run(){
for (int i = 0; i < 9; i++) {
System.out.println("MyThread类继承Thread类");
}
}
}
public static void main(String[] args) {
MyThread mythread =new MyThread();
mythread.run();
for (int i = 0; i <10 ; i++) {
System.out.println("这是Main方法运行的第"+i+"次");
}
}
}
看看运行结果截图:
结果是先按照顺序,先是调用 mythread.run()方法,
先把下面这句执行完,再执行之后的语句;
System.out.println("MyThread类继承Thread类");
执行完mythread.run()方法之后,才执行main()方法中的这一句
System.out.println("这是Main方法运行的第"+i+"次");
所以可以看出,单线程程序的运行过程;
接下来来用start()方法来实现多线程的创建让它们并发执行;
只需要把
mythread.run(); 换成 mythread.start();
即可;
代码:
package Demo20220308;
public class Test {
static class MyThread extends Thread{
public void run(){
for (int i = 0; i < 9; i++) {
System.out.println("MyThread类继承Thread类");
}
}
}
public static void main(String[] args) {
MyThread mythread =new MyThread();
mythread.start();
for (int i = 0; i <10 ; i++) {
System.out.println("这是Main方法运行的第"+i+"次");
}
}
}
运行结果截图:
通过上面的截图可以很明显的看出,程序边运行 MyThread类中的run()方法,也边在输出main方法中的循环语句;