章节13:多线程
- 【1】程序、进程、线程
- 【2】创建线程
【1】程序、进程、线程
- 程序:是为了完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码。
- 进程:是程序的一次执行过程。正在运行的一个程序,进程作为资源分配单位,在内存中会为每个进程分配不同的内存区域。是操作系统进行资源分配的基本单位。
- 线程:是一个进程内部的一条执行路径。若一个进程可以同一时间并行执行多个线程,就是支持多线程的。是操作系统调度执行的基本单位。
想要了解更多可以学习“操作系统”这门课程。
【2】创建线程
Java是支持多线程的。
创建线程有三种方式:
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
本节仅介绍第一种方式。
public class TestMain {
//1.main方法作为程序的入口,里面执行的逻辑/任务就是主线程的任务
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("main---"+i);
}
//6.创建子线程对象,执行任务
TestThread t=new TestThread();
//7.执行任务,不是直接调用run方法,而是使用start将线程启动
t.start();//8.一旦子线程启动,就会和主线程争抢资源,但具体怎么调度是靠操作系统完成的
//9.主线程中再加入一个循环
for (int i = 0; i < 1000; i++) {
System.out.println("main-main--"+i);
}
}
}
/*
2.创建一个线程类
3.继承Thread,使这个类具备多线程能力
*/
public class TestThread extends Thread {
//4.线程对应的任务放在run方法
public void run(){
//5.假定任务为循环输出0-9999(数设大一些方便看出多线程效果)
for (int i = 0; i < 1000; i++) {
System.out.println("子线程---"+i);
}
}
}
可以看到,子线程一旦启动之后,与主线程就是并行关系,操作系统时而执行主线程,时而执行子线程