1. 程序(program)
- 是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。
2. 进程
- 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用微信,又启动了一个进程,操作系统将为微信分配新的内存空间。
- 进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程。
3. 什么是线程
- 线程由进程创建的,是进程的一个实体
- 一个进程可以拥有多个线程,举例如下:
4. 线程相关概念
- 单线程:同一个时刻,只允许执行一个线程
- 多线程:同一个时刻,可以执行多个线程,比如:一个qq进程,可以同时打开多个聊天窗口,一个迅雷进程,可以同时下载多个文件。
- 并发:同一个时刻,多个任务交替执行,造成一种“貌似同时”的错觉,简单的说:单核cpu实现的多任务就是并发。
如下:CPU处在来回切换的方式来执行程序的 - 并行:同一个时刻,多个任务同时执行。多核cpu可以实现并行。
并行里面可能也会出现并发,并发和并行也有可能都存在的。
- Java代码的形式查看当前电脑的CPU数量/核心数
public class CpuNum {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
//获取当前电脑的cpu数量/核心数
int cpuNums = runtime.availableProcessors();
System.out.println("当前有cpu 个数=" + cpuNums);
}
}