java使用Thread类实现多线程
1、如果要想实现多线程,那么必须有一个前提:有一个线程的执行主类。

2、如果要想实现一个多线程的主类,有两类途径:
集成一个Thread类
实现Runnable、Callable接口。
现在我们继承Thread类实现多线程。

3、java.lang.Thread是一个线程操作的核心类。如果现在要想定义一个线程的主类,那么最简单的方法就是直接继承Thread类,而后覆写该类中的run()方法(相当于线程的主方法)。
定义线程主体类:
class MyThread extends Thread {//线程的主体类
private String title;
public MyThread(String title) {
this.title = title;
}
@Override
public void run() {//所有的线程从此处开始执行
for(int x=0;x<100;x++){
System.out.println(this.title + ",x=" + x);
}
}
}

4、当现在有了线程的主体类之后,很明显首先就一定会想到产生对象随后调用方法,但是你现在不能够直接调用run()方法。
现在我们观察直接调用run()方法:
public class ThreadDemo {
public static void main(String[] args) {
MyThread myThreadA = new MyThread("线程A");
MyThread myThreadB = new MyThread("线程B");
MyThread myThreadC = new MyThread("线程C");
myThreadA.run();
myThreadB.run();
myThreadC.run();
}
}


5、这个时候只是做了一个顺序打印,而跟多线程没有关系。多线程的执行实际上和进程是相似的,也应该采用的是多个程序交替执行,而不是说各自执行各自的。正确启动多线程的方式应该调用的是Thread类中的start()方法:
package com.gwolf;
class MyThread extends Thread {//线程的主体类
private String title;
public MyThread(String title) {
this.title = title;
}
@Override
public void run() {//所有的线程从此处开始执行
for(int x=0;x<5;x++){
System.out.println(this.title + ",x=" + x);
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
MyThread myThreadA = new MyThread("线程A");
MyThread myThreadB = new MyThread("线程B");
MyThread myThreadC = new MyThread("线程C");
myThreadA.start();
myThreadB.start();
myThreadC.start();
}
}

6、现在我们来观察程序的执行结果,程序应该是交替执行。

7、为什么要通过strat()方法调用run()方法,而不是run()直接执行?