用过go,那么进程,协程,线程各自的优缺点
参考解析
题目来源:百度
答案:
首先简单介绍一下进程、线程、协程
进程:是操作系统中最小的资源分配单位,当一个程序加载到内存中成为进程时,进程分为四个部分-堆栈、堆、文本和数据。
优点:独占全部资源隔离性好。
缺点:只能干一件事,浪费资源。
线程:是操作系统中最小的地调度单位,是进程的子集,一个进程里可以有多个线程,这些线程由调度器管理。
优点:开销与占用的资源比进程的小。能充分利用多处理器实现并行
缺点:性能损失(计算密集型线程会大量独占处理器造成性能损失),健壮性降低(线程之间影响大),缺乏访问控制(在一个线程中调用OS函数会对整个进程照成影响)
协程:在golang中是一个独立执行的函数,可以理解为轻量级的线程,内存最小为2k,由golang的runtime管理。
优点:创建简单、 避免了内核态和用户态的切换导致的成本。、可以由语言和框架层进行调度,更小的栈空间允许创建大量的实例。