- 在很多人的印象中,技术人员就是那种一板一眼、满脑子代码、算式的理性人。如果从这个刻板印象看,汪明属于非典型的技术人,他热爱博大精深的中国传统文化,从汉字中寻找人生的方法论,说文解字、四书五经,信手捏来。与此同时,汪明在软件行业兢兢业业工作了十多年,如今是一家创业公司的合伙人,目标是为企业安全生产提供专业的信息化解决方案。 当这两种截然不同的特性存在同一个人身上,会擦出什么样的火花呢?在传统文... 在很多人的印象中,技术人员就是那种一板一眼、满脑子代码、算式的理性人。如果从这个刻板印象看,汪明属于非典型的技术人,他热爱博大精深的中国传统文化,从汉字中寻找人生的方法论,说文解字、四书五经,信手捏来。与此同时,汪明在软件行业兢兢业业工作了十多年,如今是一家创业公司的合伙人,目标是为企业安全生产提供专业的信息化解决方案。 当这两种截然不同的特性存在同一个人身上,会擦出什么样的火花呢?在传统文...
- 目录前言正文 问题一、开发速度和执行速度的权衡 问题二、合理利用服务器资源 问题三、避免共享内存的同步问题结尾 前言了解编程语言的小伙伴一定知道,我们在为某个项目选择开发语言时,总是需要在开发速度和程序性能之间做出选择。C 和 C++ 这类语言提供了很快的执行速度,而 Python 、Node.js 和 Ruby 这类语言则能提供快速的开发速度。Go 语言则博采众长,不仅提供了高性能的... 目录前言正文 问题一、开发速度和执行速度的权衡 问题二、合理利用服务器资源 问题三、避免共享内存的同步问题结尾 前言了解编程语言的小伙伴一定知道,我们在为某个项目选择开发语言时,总是需要在开发速度和程序性能之间做出选择。C 和 C++ 这类语言提供了很快的执行速度,而 Python 、Node.js 和 Ruby 这类语言则能提供快速的开发速度。Go 语言则博采众长,不仅提供了高性能的...
- 今天我们来谈谈Golang的同步等待组我们现在开十条子协程,然后当十条子协程全部结束后,主协程立马结束。动动你的小脑袋,想一想应该怎么做?如果是一条子协程的话就很容易实现,当这条子协程结束时让主协程结束就行了。但是我们现在是10条,让任何一条子协程发布让主协程结束的命令都不行,因为你无法确定哪一条子协程是最后结束的。所以我们现在用上了等待组。等待组是什么原理呢?创造一个子协程就登记一下,然后... 今天我们来谈谈Golang的同步等待组我们现在开十条子协程,然后当十条子协程全部结束后,主协程立马结束。动动你的小脑袋,想一想应该怎么做?如果是一条子协程的话就很容易实现,当这条子协程结束时让主协程结束就行了。但是我们现在是10条,让任何一条子协程发布让主协程结束的命令都不行,因为你无法确定哪一条子协程是最后结束的。所以我们现在用上了等待组。等待组是什么原理呢?创造一个子协程就登记一下,然后...
- 目录前言正文单元测试规范 一、导入testing工具包 二、单元测试文件命名规范 三、单元测试方法命名规范 四、执行单元测试结尾 前言说到代码的健壮性,单元测试是少不了的,基本上所有语言都有自己的单元测试方案。工作这么多年,单元测试也没少写,像 Java、C++、Golang 都有过恶补单元测试的经历,为的就是应付各种 KPI,但是也不能说单元测试没有用,只是原始动力不是为了单元测试而单元测... 目录前言正文单元测试规范 一、导入testing工具包 二、单元测试文件命名规范 三、单元测试方法命名规范 四、执行单元测试结尾 前言说到代码的健壮性,单元测试是少不了的,基本上所有语言都有自己的单元测试方案。工作这么多年,单元测试也没少写,像 Java、C++、Golang 都有过恶补单元测试的经历,为的就是应付各种 KPI,但是也不能说单元测试没有用,只是原始动力不是为了单元测试而单元测...
- 谈谈Go的固定时长定时器和周期性时长定时器我们之前要想在调度里面实现延时执行,我们可以使用管道阻塞,直到有人往管道里面写东西才变通畅,还可以使用sleep来睡觉,但是睡觉的过程,协程啥也干不了也占用资源。所以我们要用到接下来讲的定时器,不会像sleep那样睡的时候也占用资源。先来看看下面这段代码:package mainimport ( "fmt" "time")func main() {... 谈谈Go的固定时长定时器和周期性时长定时器我们之前要想在调度里面实现延时执行,我们可以使用管道阻塞,直到有人往管道里面写东西才变通畅,还可以使用sleep来睡觉,但是睡觉的过程,协程啥也干不了也占用资源。所以我们要用到接下来讲的定时器,不会像sleep那样睡的时候也占用资源。先来看看下面这段代码:package mainimport ( "fmt" "time")func main() {...
- Go语言那些事儿之浅谈协程并发竞争资源问题我们在实际操作过程中,往往会遇到拥有多条协程并发的情况,那么当多条协程并发时,协程之间是如何竞争有限的资源的呢?本文将介绍有关内容。我们先看一看本文实例代码的主函数,两条子协程,主协程3秒后结束。func main() { go fun1() go fun2() time.Sleep(3 * time.Second)}再看看看两条子协程分别是干些什... Go语言那些事儿之浅谈协程并发竞争资源问题我们在实际操作过程中,往往会遇到拥有多条协程并发的情况,那么当多条协程并发时,协程之间是如何竞争有限的资源的呢?本文将介绍有关内容。我们先看一看本文实例代码的主函数,两条子协程,主协程3秒后结束。func main() { go fun1() go fun2() time.Sleep(3 * time.Second)}再看看看两条子协程分别是干些什...
- 「让我们一起Golang」怎样出让协程资源和设置可用CPU核心数前面了解了协程的有关基础知识,了解了CPS并发模型,见识了Golang的百万级并发,下面我们来实现一下出让协程资源和设置可用CPU核心数。 出让协程资源先看看执行结果:子协程0 0子协程0 1子协程0 2子协程0 3子协程0 4子协程0 5子协程2 0子协程2 1子协程2 2子协程2 3子协程2 4子协程2 5子协程2 6子协... 「让我们一起Golang」怎样出让协程资源和设置可用CPU核心数前面了解了协程的有关基础知识,了解了CPS并发模型,见识了Golang的百万级并发,下面我们来实现一下出让协程资源和设置可用CPU核心数。 出让协程资源先看看执行结果:子协程0 0子协程0 1子协程0 2子协程0 3子协程0 4子协程0 5子协程2 0子协程2 1子协程2 2子协程2 3子协程2 4子协程2 5子协程2 6子协...
- Go语言那些事儿之管道的关闭之前我们提到了怎么定义管道,讲了管道的读取和写入。那么今天我们就来讲一讲管道的关闭。先来看一个简单的例子:func main() { ch := make(chan int,10) for i := 0;i < 5;i++{ ch <- i*i } close(ch) for x:= range ch { fmt.Println(x) }}先思考一下它会输出... Go语言那些事儿之管道的关闭之前我们提到了怎么定义管道,讲了管道的读取和写入。那么今天我们就来讲一讲管道的关闭。先来看一个简单的例子:func main() { ch := make(chan int,10) for i := 0;i < 5;i++{ ch <- i*i } close(ch) for x:= range ch { fmt.Println(x) }}先思考一下它会输出...
- 问题解决结尾 问题在使用 Golang 编写程序的时候,经常会遇到单文件编译运行的场景,当我们使用一般的编译语句去编译的时候往往会报错,到底是怎么回事儿呢?接下我们结合具体的例子分析一下。 解决下面是一段 Golang 最简单的的“Hello,world”代码:package mainimport "fmt"func main() { fmt.Println("Hello, World!... 问题解决结尾 问题在使用 Golang 编写程序的时候,经常会遇到单文件编译运行的场景,当我们使用一般的编译语句去编译的时候往往会报错,到底是怎么回事儿呢?接下我们结合具体的例子分析一下。 解决下面是一段 Golang 最简单的的“Hello,world”代码:package mainimport "fmt"func main() { fmt.Println("Hello, World!...
- Go与Redis连接池的那些事儿~ 一、什么是连接池,连接池有什么用先看看别人是怎么介绍连接池的吧:连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还... Go与Redis连接池的那些事儿~ 一、什么是连接池,连接池有什么用先看看别人是怎么介绍连接池的吧:连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还...
- 前文回顾前面一篇文章主要介绍了 Go 语言中的指针基本概念与相关用法。Go 语言限制了指针类型的偏移和运算能力,使得指针类型具备了指针高效访问的特性,但又不会发生指针偏移,避免了非法修改敏感数据的问题。本文将会介绍常量与别名的基本使用,以及补充介绍 Go 编译工具相关的内容,作为系列文章,在前面的文章中漏掉了介绍,这里我们补充介绍一下。 常量与别名相对于变量运行时可变的特点,常量的值在声明... 前文回顾前面一篇文章主要介绍了 Go 语言中的指针基本概念与相关用法。Go 语言限制了指针类型的偏移和运算能力,使得指针类型具备了指针高效访问的特性,但又不会发生指针偏移,避免了非法修改敏感数据的问题。本文将会介绍常量与别名的基本使用,以及补充介绍 Go 编译工具相关的内容,作为系列文章,在前面的文章中漏掉了介绍,这里我们补充介绍一下。 常量与别名相对于变量运行时可变的特点,常量的值在声明...
- 前文概览前面文章介绍了Go 原生数据类型。Golang 中具备丰富的数据类型,基本类型有整型、浮点数、布尔型、字符串型等,除此之外,还有切片、结构体、指针、通道、map、数组等其他类型。本文将会介绍 GO 语言中的指针基本概念与相关用法。 指针Golang 限制了指针类型的偏移和运算能力,使得指针类型具备了指针高效访问的特性,但又不会发生指针偏移,避免了非法修改敏感数据的问题。同时 Gol... 前文概览前面文章介绍了Go 原生数据类型。Golang 中具备丰富的数据类型,基本类型有整型、浮点数、布尔型、字符串型等,除此之外,还有切片、结构体、指针、通道、map、数组等其他类型。本文将会介绍 GO 语言中的指针基本概念与相关用法。 指针Golang 限制了指针类型的偏移和运算能力,使得指针类型具备了指针高效访问的特性,但又不会发生指针偏移,避免了非法修改敏感数据的问题。同时 Gol...
- 前面一篇文章介绍了 Go 基本语法,变量的声明与初始化。本文将会具体介绍 Go 原生数据类型。Golang 中具备丰富的数据类型,基本类型有整型、浮点数、布尔型、字符串型等,除此之外,还有切片、结构体、指针、通道、map、数组等其他类型。 原生数据类型本文中我们主要介绍 Golang 的基础类型。整型中主要有两大类,分别是:按照整型的长度划分:int8、int16、int32、int64按照... 前面一篇文章介绍了 Go 基本语法,变量的声明与初始化。本文将会具体介绍 Go 原生数据类型。Golang 中具备丰富的数据类型,基本类型有整型、浮点数、布尔型、字符串型等,除此之外,还有切片、结构体、指针、通道、map、数组等其他类型。 原生数据类型本文中我们主要介绍 Golang 的基础类型。整型中主要有两大类,分别是:按照整型的长度划分:int8、int16、int32、int64按照...
- 前文回顾前面的文章介绍了 Go 相关的特性与入门案例,对于一门编程语言,变量和语法是我们首先需要掌握的。Golang 在语法上与 C 语言有很多相似支持,但是比 C 语言更加简约。如果你有一定的 C 语言基础,阅读起来就事半功倍,即时没有也没关系,因为 Golang 的语法非常易于理解。本系列文章将会介绍 Go 语言基础语法的相关知识,本文将首先从变量的声明与初始化讲起。 变量的声明与初始... 前文回顾前面的文章介绍了 Go 相关的特性与入门案例,对于一门编程语言,变量和语法是我们首先需要掌握的。Golang 在语法上与 C 语言有很多相似支持,但是比 C 语言更加简约。如果你有一定的 C 语言基础,阅读起来就事半功倍,即时没有也没关系,因为 Golang 的语法非常易于理解。本系列文章将会介绍 Go 语言基础语法的相关知识,本文将首先从变量的声明与初始化讲起。 变量的声明与初始...
- 前文回顾上一篇文章,我们介绍了 Go 语言的一些特性以及环境的安装。具体可以参见:https://bbs.huaweicloud.cn/blogs/281431Golang 简单、高效、并发的特性吸引了众多开发人员加入到 Golang 开发的大家庭中,目前已经涌现大量通过 Golang 原生开发的大型开源项目, 并在软件行业中发挥重要作用,其中包括 Docker、Kubernetes、e... 前文回顾上一篇文章,我们介绍了 Go 语言的一些特性以及环境的安装。具体可以参见:https://bbs.huaweicloud.cn/blogs/281431Golang 简单、高效、并发的特性吸引了众多开发人员加入到 Golang 开发的大家庭中,目前已经涌现大量通过 Golang 原生开发的大型开源项目, 并在软件行业中发挥重要作用,其中包括 Docker、Kubernetes、e...
上滑加载中
推荐直播
-
香橙派AIpro的远程推理框架与实验案例
2025/07/04 周五 19:00-20:00
郝家胜 -华为开发者布道师-高校教师
AiR推理框架创新采用将模型推理与模型应用相分离的机制,把香橙派封装为AI推理黑盒服务,构建了分布式远程推理框架,并提供多种输入模态、多种输出方式以及多线程支持的高度复用框架,解决了开发板环境配置复杂上手困难、缺乏可视化体验和资源稀缺课程受限等痛点问题,真正做到开箱即用,并支持多种笔记本电脑环境、多种不同编程语言,10行代码即可体验图像分割迁移案例。
回顾中 -
鸿蒙端云一体化应用开发
2025/07/10 周四 19:00-20:00
倪红军 华为开发者布道师-高校教师
基于鸿蒙平台终端设备的应用场景越来越多、使用范围越来越广。本课程以云数据库服务为例,介绍云侧项目应用的创建、新建对象类型、新增存储区及向对象类型中添加数据对象的方法,端侧(HarmonyOS平台)一体化工程项目的创建、云数据资源的关联方法及对云侧数据的增删改查等操作方法,为开发端云一体化应用打下坚实基础。
即将直播
热门标签