基本概念
- 程序:计算机语言编写的一组指令的集合。
- 进程:程序在运行内存中的产生、存在、消亡的过程。
- 线程:程序内部的执行路径。
- 多线程:同时并行执行多个线程;每个线程拥有独立的运行栈、程序计数器,共享堆、方法区。
java程序至少有三个线程:main()主线程、gc()垃圾回收进程,异常处理线程。
单核CPU与多核CPU的多线程
单核CPU多线程:断续执行多个线程(暂停一个线程,执行另一个线程),同一时间执行一个线程,因时间单元小,故宏观上表现为多线程,是一种假的多线程,实质为单线程,是一种并发。
多核CPU多线程:同定义的多线程,是一种并行,但每个核也可以执行假的多线程,即多核CPU具备并发和并行。
多线程优点
- 提高应用程序的相应,增强用户体验;
- 提高CPU的利用率,减少闲置;
- 改善程序结构,利于理解和修改。
多线程使用场景
- 程序需要同时执行多个任务;
- 存在等待任务时,如用户输入、文件读写操作、网络操作、搜索等;
- 需要后台运行程序。
多线程的创建和使用
一个线程对应一个线程类的一个对象,多个对象对应多个线程。
方式一
- 创建一