作者:程序员库森

链接:

https://www.nowcoder.com/discuss/700464?type=2&channel=-1&source_id=discuss_terminal_discuss_hot_nctrack

来源:牛客网

1. 进程和线程的区别?

2. 协程与线程的区别?

3. 并发和并行有什么区别?

并发就是在一段时间内,多个任务都会被处理;但在某一时刻,只有一个任务在执行。单核处理器可以做到并发。比如有两个进程ABA运行一个时间片之后,切换到BB运行一个时间片之后又切换到A。因为切换速度足够快,所以宏观上表现为在一段时间内能同时运行多个程序。

并行就是在同一时刻,有多个任务在执行。这个需要多核处理器才能完成,在微观上就能同时执行多条指令,不同的程序被放到不同的处理器上运行,这个是物理上的多个进程同时进行。

4. 进程与线程的切换流程?

进程切换分两步: