当前位置: 首页 > news >正文

Go | 一分钟掌握Go | 8 - 并发

作者:Mars酱

声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。

转载:欢迎转载,转载前先请联系我!

前言

当今编程界,一个好的编译型语言如果不支持并发,那必然不是一个好的程序员

goroutine

什么是goroutine?

goroutine是Go编程语言中的轻量级执行线程,也是与程序其余部分同时执行的函数。

与传统线程相比,Goroutines 非常轻量,因为创建 goroutine 的开销非常低。因此,它们在 Go 中广泛用于并发编程。

要将函数作为 goroutine使用,请使用关键字:go

好了,以上是官方对于goroutine的解释,那么我们再看看go关键字

go关键字

如果我们要使用goroutine,那么就在函数或者方法之前加上go关键字就可以了,比如:

go runGoroutine()

匿名函数也可以使用go关键字去执行,比如:

go func(){// 做点啥 ...
}()

来个goroutine

我们写一个函数:

// author: mars酱
func helloGoroutine() {fmt.Println("hello goroutine...")
}

然后我们去调用它:

// author: mars酱
func Test_goroutine2(t *testing.T) {go helloGoroutine()fmt.Println("你好,mars酱")
}

运行的结果:

正常运行!

首先执行了主函数中的中文输出,再执行了goroutine中的英文输出,那么,为什么?

为什么

因为go程序在创建goroutine的时候需要开销,而主函数也是一个goruntine,所以优先中文输出,再执行的新创建的goroutine。大家可以理解为异步,我来补个图:

将就着看吧,画图实在是不太行。

http://www.lryc.cn/news/64821.html

相关文章:

  • 【滤波】多元高斯
  • 单源最短路问题
  • Security方法注解权限控制过程及自定义权限表达式
  • vue 省市县三级联动
  • ChatGPT实现编程语言转换
  • 浅拷贝和深拷贝
  • 进程地址空间与页表方面知识点(缺页中断及写时拷贝部分原理)
  • Photoshop如何使用滤镜之实例演示?
  • Flutter 组件抽取:日期(DatePicker)、时间(TimePicker)弹窗选择器【仿照】
  • 基于opencv的YOLOV3对图片的目标检测
  • Mermaid流程图
  • 国产!全志科技T507-H工业核心板( 4核ARM Cortex-A5)规格书
  • java小记 2023-05-05
  • CentOS安装Nginx
  • CSS布局基础(CSS书写顺序 导航栏写法 常见问题)
  • 打造卓越 QML 层级设计:从入门到精通
  • shell流程控制之条件判断练习
  • linux中TF启动卡制作:磁盘分区文件同步
  • 【操作系统OS】学习笔记:第一章 操作系统基础【哈工大李治军老师】
  • Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
  • 庖丁解牛函数知识---C语言《2》
  • Git 使用教程:最详细、最正宗手把手教学(万字长文)
  • 【华为OD机试 2023最新 】最优资源分配/芯片资源占用(C语言题解 100%)
  • markdown二元运算符
  • 【华为/华三】PPP
  • 【Java笔试强训 9】
  • 【C++】STL标准库之list
  • Nomogram | 盘点一下绘制列线图的几个R包!~(二)
  • Django之定时任务django-crontab
  • linux常见命令