程序是为了完成某项实际功能,用某种语言编写的一种指令的集合.简单来说,我们平常敲的代码就是程序。程序是静态的一种状态。
2 进程(processor) 2.1 进程指的是运行中的程序。 2.2 进程是一种动态过程,占用系统的资源(CPU、内存、硬件) 2.3 进程若崩掉了,会让出资源(CPU、内存、硬件)给其他需要资源的进程使用 2.4 每个进程之前相互独立,但是两者之间可以通过特定的方法通信举例:火车站可以看成一个程序,那么候车室和售票厅就相当于两个进程,因为他们俩分别负责不同的功能,两者之间是独立的,他们执行不同的功能时候互不影响.
2.5 进程举例说明: 打开电脑上面的qq,qq一旦运行它就是一个进程 3 线程(thread) 3.1 进程里面最小的执行单元,不可再分。 3.2 每个线程都有自己独立的栈空间 3.3 线程和线程之间是可以共享的,包含它们进程所对应的堆、方法区 3.4 某个线程崩掉了,此进程也可能会崩掉 3.5 线程可以并发执行 3.6 线程是由进程创建的,是进程的一个实体 3.6 一个进程可以拥有多个线程例如: 启动了的百度网盘可以看出一个进程,然后它里面的多个下载任务可以看出一个个的线程,下载的速度谁快谁慢也是需要自己去争抢网速的(抢夺式下载)
4 并发 4.1 内容同一个时刻,多个任务交替执行,给咱们造成一种貌似同时的错觉,实际上并不是同时执行了(只不过是cpu的执行速度够快而已)
单核cpu实现的多任务就是并发
4.2 举例说明例如:你在打游戏的时候同时进行语音交流,看上去是同时发生的,实际上是不是,是你的大脑的运算速度足够快,然后能支撑着你边玩游戏边聊天。(打游戏用到的是手,聊天用到的是嘴巴)
5 并行 5.1 内容同一个时刻,多个任务同时执行
5.2 举例说明例如: 你的电脑同时启动了qq和百度网盘,在下载资源的同时,还可以和好友进行聊天
这两个操作是同一个时刻执行的,就是并行操作
6 补充 6.1 如何查看电脑里面有几个cpu 6.1.1 程序方法 a 示例代码package Work4; public class CPUTest { public static void main(String[] args) { Runtime runtime=Runtime.getRuntime(); //获取当前电脑的cpu数量 int cpuNum=runtime.availableProcessors(); System.out.println("当前电脑的cpu数量为: "+cpuNum); } }b 示例代码运行截图 6.1.2 任务管理器法 a 在搜索处搜索任务管理器并回车 b 点击性能 c 点击打开资源管理器按钮 d 点击上方的cpu菜单栏 e 得到最终的cpu数量为8(从0开始命名的) 6.1.3 我的电脑法 a 我的电脑右键管理 b 点击设备管理器 c 点击处理器 d 查看cpu个数的结果