一、什么是进程
进程是一个正在执行的的任务或者过程,也可以说是一个执行的程序。
进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。
二、什么是线程
一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
main进程
一个类在运行一main入口方法的时候,其实JVM就创建一个线程,线程的名称为main。
public class ThreadMain {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName());//main
}
}
打印输出的main是当前线程的名称,当前main线程与main方法没有任何关系,仅仅是有一个main线程在执行main方法。
三、多线程的优点
能够同一时间运行多个任务,最大化利用CPU,增加运行效率。
四、怎么实现多线程
实现多线程有两种方式:一是实现Runnable接口,二是继承Thread类。
1.实现Runnable接口
public class RunnableImplment implements Runnable {
@Override
public void run() {
System.out.println("通过实现Runnable接口实现多线程");
}
}
因为是接口原因,实现Runnable接口方式的多线保留接口多态特性。
2.继承Thread类
public class ThreadExtends extends Thread {
@Override
public void run() {
super.run();
System.out.println("通过继承Thread类实现多线程");
}
}
其实Thread类是Runnable接口的一个实现类。
五、注意事项
- 一个进程至少会有一个线程运行;
- 多线程是异步的,和代码顺序无关;
- 线程的调用是随机的