什么是多线程
线程是依赖于进程而存在的。
A:进程 正在运行的应用程序
B:线程 进程的执行路径,执行单元
多线程的创建方式
- 通过继承Thread类
- 通过实现Runnable接口
实现方式一代码如下
package com.wy.threadcreate1;
/*
* 创建线程的第一种方式,继承Thread类
*/
public class MyThread extends Thread{
//重写run方法,重写run方法中的代码之后
//当启动了这个线程之后,这个线程就会执行run方法中的代码
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(i);
}
}
}
测试类如下:
package com.wy.threadcreate1;
public class ThreadTest {
public static void main(String[] args) {
MyThread mt = new MyThread();
mt.start();
}
}
实现方式2代码如下:
package com.wy.threadcreate2;
/*
* 创建线程的第二种方式,实现Runable接口
*/
public class MyThread implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(i);
}
}
}
多线程方法介绍
启动线程的方法
run()
start()和run()的区别
start():1.开启线程 2.执行run()方法里面的代码 run():执行的是线程里面执行的代码,并不会开启线程
为什么要重写run()方法?
因为每个线程需要执行的代码都是都是不一样的, 我们需要将每个线程自己独立执行的代码写到run()方法中执行
- 线程可以多次启动么?
不可以多次启动
package com.wy.start_run;
public class MyThread extends Thread{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(i);
}
}
}
//////////////////////////////////////////////////////