以下内容全部都来自 bilibili 宋红康老师java基础部分内容P415 ~ P446 小节中 https://www.bilibili.com/video/BV1Kb411W75N?p=415
什么是程序
为了完成特定任务,用某种语言编写的一组指令的集合。既指 一段静态的代码
什么是进程
是程序的一次执行过程,或是 正在运行的一个程序。是一个动态的过程,他自身的产生、存在、消亡的过程 — 生命周期
什么是线程
进程可以进一步细化为线程,是一个程序内部的一条执行路径。
程序和进程有什么区别
程序是<静态>的,进程是<动态>的,进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域
进程和线程有什么区别
1、进程是操作系统资源分配的基本单位
2、线程是处理器任务调度和执行的基本单位,每个线程拥有独立的运行站和程序计数器,线程切换的开销小
一个进程内可以包含多个线程
举个例子:网易云音乐,我可以边听歌的时候,边搜歌,此时运行了2个线程
什么是并行
多个cpu同时执行多个任务。例如:多个人同时做不同的事
什么是并发
一个cpu同时执行多个任务。例如:秒杀,多个人做同一件事
为什么多线程及其重要
硬件方面:摩尔定律失效(计算机硬件性能每隔18个月翻一倍) CPU上的晶体管已经插满了,2003年开始CPU主频不在翻倍,而是采用多核而不是更快的主频
并发系统处理异步回调等生产需求
多线程共有几种创建方式
4种,分别是
- 继承 Thread类,重写Thread中的 run() 方法
- 实现 Runnable接口
- 实现 Callable接口
- 使用线程池创建