进程,线程和协程有什么关系和区别?
进程,线程和协程有什么关系和区别?
题眼:用户态轻量级线程
进程是程序执行的过程,包括了动态创建、调度和消亡的整个过程,进程是程序资源分配管理的最小单位。有独立的地址空间。
线程是操作操作系统能够进行运算调度的最小单位。线程被包含在进程之中,是进程中的实际运作单位,一个进程内可以包含多个线程,多个线程共享进程的堆和方法区资源,不共享栈、程序计数器。
协程是用户态的轻量级线程,不受操作系统的调度,而是由程序员或者库来控制。协程可以在一个线程中切换执行多个任务,实现了异步编程的效果。协程的创建和销毁完全由用户空间完成,开销非常小。
参考回答:
进程是程序资源分配管理的最小单位;线程是资源调度的最小单位。其中,一个进程可以包含多个线程,而这些线程又共享该进程的资源。而协程是用户态的轻量级线程,不受操作系统的调度,由程序员或库进行控制,并且协程的创建和销毁都由用户空间完成,所以开销非常小。
