冯诺依曼体系
cpu 的基本工作过程
1.主频,描述了 1s 有多少个时钟周期(可以近似看作是 1s 执行多少指令)
2.执行程序的过程:硬盘 => 内存 => CPU => 解析指令 => 执行指令
* Java 程序同理
* Java => class => JVM 读指令,解析指令,执行指令 => 转化为 CPU 能认识的二进制指令
进程
进程就是任务,跑起来的程序
系统使用 PCB 描述进程,使用双向链表
调度:CPU 多核心 CPU,并行+并发来运作许多进程
虚拟地址空间 => 独立性
利用一些公共的地址进行进程间的通信
线程(Threed)
线程是被包含着进程中的。一个进程默认会有一个或多个线程,每个线程都是一个“执行流”可以单独在 CPU 上进行调度。同一个进程中的这些线程共用同一份系统资源(内存 + 文件)
使用多线程:
1.能够充分利用上多核 CPU,能够提高效率
2.只是创建第一个线程时需要申请资源(节省了申请资源的开销);销毁线程的时候,也只是销毁到最后一个的时候才真正释放资源,前面的线程销毁都不必真正释放资源
面试题:谈谈线程与进程的区别
1.进程包含线程
2.线程比进程更轻量,创建更快,销毁也更快
3.同一个进程的多线程之间共用同一份内存/文件资源.进程和进程之间,则是独立的内存/文件资源
4.进程是资源分配的基本单位,线程是调度执行的基本单位