更新时间:2019年08月13日 21时56分18秒 来源:黑马程序员
近年来,Go已经从新兴的编程语言中脱颖而出。Go语言是Google的一种新编程语言,它可以在不牺牲应用程序性能的情况下降低代码的复杂性。下面我们介绍下,GO语言线程、进程和协程的区别?
进程:是系统资源分配的最小单位,系统是由一个个进程组成的,包括文本区,数据区和堆栈区。进程的创建和销毁都比较消耗资源和时间。进程是抢占式的争夺CPU的资源,单核CPU在同一时刻只能有一个进程在执行。
线程:是CPU调度的最小单位,线程属于进程,它共享进程的整个内存空间。多线程是不安全的,进程内的一个线程崩溃会导致整个进程崩溃。
线程的切换除了不用做1)切换页目录以使用新地址之外(进程需要),依然要2)切换内核栈,3)切换硬件上下文。
协程:协程是属于线程的,协程的程序是在线程里面跑的。协程没有线程的上下文切换,协程的切换是程序员自己控制的。协程是原子操作的,不存在代码执行一半,被终止的情况。
以上我们介绍了“GO语言线程、进程和协程的区别”,如果想了解更多可以点击页面咨询按钮,了解黑马程序员GO语言+区块链课程。
推荐了解热门学科
java培训 | Python人工智能 | Web前端培训 | PHP培训 |
区块链培训 | 影视制作培训 | C++培训 | 产品经理培训 |
UI设计培训 | 新媒体培训 | 产品经理培训 | Linux运维 |
大数据培训 | 智能机器人软件开发 |
Python入门教程完整版(懂中文就能学会)【点击】 | 零起点打开Java世界的大门【点击】 |
C++| 匠心之作 从0到1入门学编程【点击】 | PHP|零基础入门开发者编程核心技术【点击】 |
Web前端入门教程_Web前端html+css+JavaScript【点击】 | 软件测试入门到精通【点击】 |