- 创建一个Thread子类
- 重写run方法
- 将要做的事情协助run方法体内
- 通过对象调用start方法
- 一个对象只能调用一个start方法
- 可以创建多个对象调用多个start方法
- 存在线程安全问题
示例代码:
/**
* 创建人:LYY
* 创建时间:2022/4/25
*
* 多线程创建方式一:
* 1. 创建一个继承Thread类的子类
* 2. 重写Thread类的run方法
* 3. 将要执行的内容写在run方法体内
* 4. 通过对象调用当前子类的start方法
*/
public class ThreadOne extends Thread{
@Override
public void run() {
// 输出1-100的偶数
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
System.out.println("i = " + i);
}
}
}
}
/**
创建人:LYY
创建时间:2022/4/25
*/
public class ThreadTest {
public static void main(String[] args) {
ThreadOne threadOne = new ThreadOne();
// 调用线程 线程一
// start方法 1. 启动线程 2. 使java虚拟机调用run方法
threadOne.start();
// 直接调用run方法无法启动多线程功能
threadOne.run();
// 一个对象只能调用一个start方法 否则会出现IllegalThreadStateException
//threadOne.start();
// 新建对象 在调用start方法
ThreadOne threadOne1 = new ThreadOne();
// 新的线程启动 线程二
threadOne1.start();
for (int i = 0; i < 100; i++) {
if (i % 2 != 0) {
System.out.println("i = " + i);
}
}
}
}