一、线程的概念:
任务管理器快捷键:Ctrl+Alt+delete
1、进程和线程的区别?
进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。
一个进程可以包含多个线程,而且至少包含一个线程。
①地址空间:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间
线程没有独立的地址空间,统一进程内的线程共享本进程的地址空间。
②资源拥有:进程之间的资源是独立的,同一进程内的线程共享本进程的资源。
③执行过程:每个独立的进程都有一个程序运行的入口,可以独立执行。
但是线程不能独立执行,必须依附在应用程序中,由应用程序提供多个线程的执行控制。
进程就像是渣男谈恋爱, 一个进程可以有多个线程(女朋友),最少也得有一个。
2、单线程与多线程:
单线程:一个顺序的单一的程序执行流程就是一个线程。代码一句一句地有先后顺序地执行。
多线程:多个单一顺序执行的流程并发运行,造成“感官上同时运行”的效果。
单线程:就是只谈一个女朋友,顺序执行就完事。
多线程:就是一起谈很多个, 有很多个线程,看着好像是”同时恋爱,同时运行“。但其实,渣男需要分派时间,给这个女朋友(线程)一会时间,这个女朋友才在谈,线程在运行;这个时间片到期了,就给别的女朋友。由于渣男换的很快,早上谈个女大学生,中午谈个女白领,下午又谈个女大学生,所以看起来宏观上好像是一起的,但其实根据具体分配时间切换的不同,微观上走走停停。这就是并发。
3、并发
多个线程实际运行是走走停停的,线程调度程序会将CPU运行时间划分为若干个时间片段,并尽可能均匀地分配给每个线程,拿到时间片的线程会被CPU执行这段时间。
当超时后,线程调度程序会再次分配一个时间片段给一个线程,使得CPU执行它,如此反复。
由于CPU执行时间在纳秒级别,我们感觉不到切换线程运行的过程,所以微观上走走停停,宏观上感觉是一起运行,这种现象称为并发运行。
4、并发和并行区别:
并发是指一个处理器同时处理多个任务,并行是指多个处理器或者多核处理器同时处理多个不同的任务。并发是逻辑上同时发生,并行是物理上同时发生。
(并发是指在同一时刻只能有一条指令执行,但是多个指令会被快速的轮换执行,使得宏观上由同时执行的效果ÿ