首页技术文章正文

GO语言线程、进程和协程有什么区别?

更新时间: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【点击】

软件测试入门到精通
【点击】
在线咨询 我要报名
和我们在线交谈!