![e5a152ebb9d6fbde7f7eea0373ff640d.png](https://img-blog.csdnimg.cn/img_convert/e5a152ebb9d6fbde7f7eea0373ff640d.png)
一、创建线程和使用线程方式
1.1 继承Thread
让线程类继承自Thread类,然后重写run(),把需要多线程调用的代码放到run()中。但是需要开启线程的时候不能调用run方法,而是需要调用start()方法。
/**
* 本类用于演示第一种实现多线程的方式
*/
class MyThread extends Thread{
// 需要我们使用多进程运行的代码就写在run方法里
@Override
public void run() {
for (int i = 1; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "线程正在运行~~~~~~" + i);
}
}
}
public class ThreadDemo01 extends Thread{
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
for (int i = 1; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "线程正在运行======" + i);
}
}
}
运行结果:(两个线程同时运行,争抢cpu,每次执行结果不固定)
![095324984285411420146f60baf28e6b.png](https://img-blog.csdnimg.cn/img_convert/095324984285411420146f60baf28e6b.png)
12.2 实现Runnable接口
需要我们创建的线程类实现Runnable接口。实现run方法,把需要多线程调用的代码写在run方法中。由于Ru