1、内存(主存):存临时数据,存取速度快,断电即消失。负责CPU和硬件的数据交换。
2、外存(磁盘,一般指硬盘):永久存储,存取速度慢。硬盘,光盘(软盘),U盘。
3、物理内存和虚拟内存:物理内存即为主机板上的内存,可通过增加内存条来扩大;虚拟内存是作业系统在硬盘上建立的一个档案,把物理内存中不常用的部分拷贝起来并清空那部分物理内存,虚拟内存大小可以自己设定,一般在物理内存的2到3倍。
4、RAM和ROM:RAM相当于电脑的内存,ROM相当于电脑的磁盘。
5、CPU:功能本质是处理计算机指令。运算器,控制器,寄存器,暂时不用关注这么细。
CPU核数,CPU线程数跟java线程数:
(1)线程是操作系统最小的调度单位,进程是资源(比如:内存)分配的最小单位。Java中的所有线程在JVM进程中,CPU调度的是JVM进程中的线程
(2)单个cpu线程在同一时刻只能执行一个java线程,单个java线程同时只能在单个cpu线程中执行
(3)操作系统使用时间片机制,采用线程调度算法,让每个CPU核频繁地进行线程切换。比如一个进程的三个线程,线程1读文件,线程2读库,线程3访问网络,线程在CPU上需要运行的时间比起这三种操作的响应时间几乎可以忽略不计,完全可以在等待响应过程中进行线程切换,在用户直观看来就是三个线程同时在执行了。
(4)CPU个数是物理上的主板上镶着几个;CPU几核并不是真的物理几核,而是逻辑上模拟出的核心数;一个设备同一时刻能并发执行的线程个数为 CPU个数 * 核数
6、CPU缓存:运行速度仅次于处理器,远大于内存和硬盘。区别于WEB缓存,WEB缓存大部分存在内存中,但进不进CPU缓存没有必然关系,像cookie的话反倒是存在硬盘中的。
(WEB缓存:
数据库数据缓存(如redis)
代理服务器缓存(如nginx,Apache)
浏览器缓存(不太明确,是指cookie和session吗?)
Web应用层缓存(通过代码存在内存中,减少访问硬盘中的数据库)
)
纯粹是为了看多线程,先来看下这些基础哈,所以很多都不深究,甚至理解错误的,后续回过来再说。