一些杂七杂八的知识|青训营笔记

81 阅读3分钟

并发: 并发在CPU处理中指的是多个任务交替执行的能力。当存在多个任务需要执行时,CPU可以通过快速地在任务之间进行上下文切换来实现并发。每个任务被分配一小段时间片(时间片轮转),并在切换时保存当前任务的状态,然后恢复下一个任务的状态继续执行。这种并发方式使得多个任务似乎同时执行,给用户以同时执行的感觉,但实际上任务是交替进行的。

并行: 并行在CPU处理中指的是多个任务同时执行的能力。在具有多个处理器核心的多核处理器中,可以通过将不同的任务分配到不同的核心上来实现并行。每个核心独立地执行自己的任务,它们可以同时进行计算,而不会相互干扰。并行处理能够显著提高任务的执行速度和系统的吞吐量。

线程: 线程是操作系统内核进行调度和执行的最小单位。每个线程都有自己的执行上下文,包括程序计数器、寄存器集合和栈等。线程在操作系统层面上由内核进行调度,可以同时运行多个线程。多线程编程可以实现并发和并行,充分利用多核处理器的能力。然而,线程的创建和销毁会带来一定的开销,并且线程之间的切换需要保存和恢复上下文,导致较高的内存开销和调度开销。

协程: 协程是一种轻量级的用户态线程,也称为纤程(Fiber)或用户态线程。与线程不同,协程的调度和执行由用户程序自行控制,而非操作系统内核。协程可以看作是一种协作式的并发机制,协程之间通过协作的方式进行调度和切换。在协程中,任务的切换和上下文的保存由程序员显式地控制,通常在任务达到一个明确定界点时切换到下一个任务。协程可以减少线程切换的开销,并且可以实现更高效的并发。然而,协程并不能利用多核处理器的能力,因为它们运行在单个线程中。

线程: 线程是操作系统内核进行调度和执行的最小单位。每个线程都有自己的执行上下文,包括程序计数器、寄存器集合和栈等。线程在操作系统层面上由内核进行调度,可以同时运行多个线程。多线程编程可以实现并发和并行,充分利用多核处理器的能力。然而,线程的创建和销毁会带来一定的开销,并且线程之间的切换需要保存和恢复上下文,导致较高的内存开销和调度开销。

协程 : 协程是一种轻量级的用户态线程,也称为纤程(Fiber)或用户态线程。与线程不同,协程的调度和执行由用户程序自行控制,而非操作系统内核。协程可以看作是一种协作式的并发机制,协程之间通过协作的方式进行调度和切换。在协程中,任务的切换和上下文的保存由程序员显式地控制,通常在任务达到一个明确定界点时切换到下一个任务。协程可以减少线程切换的开销,并且可以实现更高效的并发。然而,协程并不能利用多核处理器的能力,因为它们运行在单个线程中。