多线程相关的三组概念
程序和进程
程序是一个固定的运行逻辑 是静态的 一般存储在硬盘
进程是一个正在运行的程序 是动态的 一般存储在内存
QQ这个程序 如果不运行 就存在磁盘中(静态) 运行后就开始占用内存了 (动态)
进程和线程
进程: 一个正在运行的程序 一个程序的一次运行
线程: 一条独立的执行路径。多线程,在执行某个程序的时候,该程序可以有多个子任务,每个线程都可以独立的完成其中一个任务。在各个子任务之间,没有什么依赖关系,可以单独执行。
二者关系
进程是用于分配资源的单位 一个进程中,可以有多条线程;但是一个进程中,至少有一条线程
线程不会独立的分配资源,一个进程中的所有线程,共享同一个进程中的资源
并行和并发
并行: 多个任务同时运行 在某一时刻 多个任务在同时执行
并发: 多个任务同时发起 但由于只有一个cpu 所以不能同时执行 (需要排队)
并发的本质: 不同任务来回切换
一个cpu在不同的任务之间,来回切换,只不过每个任务耗费的时间比较短,cpu的切换速度比较快,所以我们会感觉就像多个任务在同时执行