Go语言程序开发
文章平均质量分 83
Go语言程序开发,Go语言(也称为Golang)是一种静态类型、编译型的编程语言,设计用于构建简单、快速和可靠的软件。下面是一个简单的Go语言程序示例,该程序打印出“Hello, World!“到控制台。首先,你需要安装Go语言的运行环境。
青少年编程作品集
肖老师,IT高级软件工程师,从事软件设计与研发20年之久,具备丰富的设计和研发等编程经验。
精通逻辑算法,工程数控,数据分析与挖掘。有4年的金融保险银行数据逻辑算法分析处理工作经验,
有5年的电信移动无线通讯技术3G,4G网优网规相关编程经验,有4年的企业应用软件,工程控制应用软件,互联网应用软件编程经验
还有4年的移动APP,小程序,Web前后端软件编程经验。精通Scratch,Python,C,C++,Java,Javascript,html5,Css3等编程语言,
熟悉各种编程工具,以及编程的流程和编程环境。涉及积木编程,AI人工智能编程,大数据挖掘编程,手机APP和小程序编程。
展开
-
【Go语言程序开发】 调度器精讲(十一):Go 总览全局
前面用了十讲介绍了 Go runtime 调度器,这一讲结合一些图在总览下 Go runtime 调度器。原创 2024-09-19 09:19:09 · 407 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(十):Go 异步抢占
前面介绍了运行时间过长和系统调用引起的抢占,它们都属于协作式抢占。本讲会介绍基于信号的真抢占式调度。抢占式调度器 - Go 1.2 至今基于协作的抢占式调度器 - Go 1.2 - Go 1.13改进:通过编译器在函数调用时插入抢占检查指令,在函数调用时检查当前 Goroutine 是否发起了抢占请求,实现基于协作的抢占式调度。缺陷:Goroutine 可能会因为垃圾收集和循环长时间占用资源导致程序暂停。基于信号的抢占式调度器 - Go 1.14 至今改进:实现了基于信号的真抢占式调度。原创 2024-09-19 09:17:42 · 666 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(九):Go 系统调用引起的抢占
第八讲介绍了当 goroutine 运行时间过长会被抢占的情况。这一讲继续看 goroutine 执行系统调用时间过长的抢占。原创 2024-09-19 09:15:40 · 436 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(八):Go 运行时间过长的抢占
在在第7讲:案例分析一文我们介绍了一个抢占的案例。从案例分析抢占的实现,并未涉及到源码层面。本文将继续从源码入手,看 Go runtime 调度器是如何实现抢占逻辑的。原创 2024-09-19 09:14:11 · 974 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(七):Go 案例分析
前面用了六讲介绍 Go runtime 调度器,这一讲我们看一个关于调度 goroutine 的程序案例分析下调度器做了什么。需要说明的是,这个程序和抢占有关,抢占目前为止还没有介绍到,如果看不懂也没有关系,有个印象就行。原创 2024-09-19 09:11:52 · 509 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(六):Go 非 main goroutine 运行
在在第3讲:main goroutine 创建介绍了 main goroutine 的创建,文中我们说 main goroutine 和非 main goroutine 有区别。当时卖了个关子并未往下讲,这一讲我们会继续介绍非 main goroutine (也就是 go 关键字创建的 goroutine,后文统称为 gp) 的运行,并且把这个关子解开,说一说它们的区别在哪儿。原创 2024-09-19 09:10:23 · 308 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(五):Go 调度策略
在第四讲我们介绍了 main goroutine 是如何运行的。其中针对 main goroutine 介绍了调度函数 schedule 是怎么工作的,对于整个调度器的调度策略并没有介绍,这点是不完整的,这一讲会完善调度器的调度策略部分。原创 2024-09-19 09:07:30 · 726 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(四):Go main goroutine
皇天不负有心人,终于我们到了运行 main goroutine 环节了。让我们走起来,看看一个 goroutine 到底是怎么运行的。原创 2024-09-19 09:05:47 · 933 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(三):Go main goroutine 创建
回顾下上一讲的内容。主线程 m0 蓄势待发,准备干活。g0 为 m0 提供了执行环境,P 和 m0 绑定,为 m0 提供活,也就是 goroutine。那么问题来了,活呢?哪里有活给 m0 干?这一讲我们将介绍 m0 执行的第一个活,也就是 main goroutine。main gouroutine 就是执行 main 函数的 goroutine,有别于用go关键字创建的 goroutine,它们在执行过程中有一些区别(后续会讲)。原创 2024-09-19 09:04:16 · 917 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(二):Go 调度器初始化
上一讲介绍了 Go 程序初始化的过程,这一讲继续往下看,进入调度器的初始化过程。接着上一讲的执行过程,省略一些不相关的代码,执行到(dlv) siasm_amd64.s:343 0x45431c* 8b442418 mov eax, dword ptr [rsp+0x18] // [rsp+0x18] 存储的是 argc 的值,eax = argc。原创 2024-09-19 09:01:57 · 698 阅读 · 0 评论 -
【Go语言程序开发】 调度器精讲(一):Go 程序初始化
本系列将介绍 Go runtime 调度器。要学好 Go 语言,runtime 运行时是绕不过去的,它相当于一层“操作系统”对我们的程序做“各种类型”的处理。其中,调度器作为运行时的核心,是必须要了解的内容。本系列会结合 Go plan9 汇编,深入到 runtime 调度器的源码层面去看程序运行时,goroutine 协程创建等各种场景下 runtime 调度器是如何工作的。本系列会运用到 Go plan9 汇编相关的知识,不熟悉的同学可先看看这里了解下。原创 2024-09-19 08:59:17 · 728 阅读 · 0 评论