going

Go源码阅读——github.com/medcl/esm

esm(An Elasticsearch Migration Tool)—— main.go https://github.com/medcl/esm 阅读源码,我没啥好方法和好习惯,唯 "莽 "。 一、main.go func main(){} // 该方法用于基于源索引的刷新设置来还原目标索引的 ......
源码 github medcl com esm

Go语言入门14(channel通道01)

channel(一) ​ channel用于goroutines之间的通信,让它们之间可以进行数据交换。像管道一样,一个goroutine_A向channel_A中放数据,另一个goroutine_B从channel_A取数据 channel 基本语法 // 因为channel是指针类型的数据类型, ......
通道 channel 语言

Go并发编程实战

概述 基础理论 Do not communicate by sharing memory; instead, share memory by communicating. 简单来说所谓并发编程是指在一个处理器上“同时”处理多个任务;宏观上并发是指在一段时间内,有多个程序在同时运行;在微观上 并发是指 ......
实战

【GO】jeager

安装 docker docker pull jaegertracing/all-in-one:latest docker run \ --rm \ --name jaeger \ -d \ -p6831:6831/udp \ -p16686:16686 \ -p14268:14268 \ jaege ......
jeager

云原生时代崛起的编程语言Go并发编程实战

Go语言是天然并发利器,通过通信来实现内存共享而不是通过共享内存来通信,本篇从了解Go的并发哲学、理论及并发原语开始,之后用一个个Go代码示例认识Go的协程、通道、定时器、互斥锁、池化、原生操作等十几个并发编程示例,进一步加深对其并发编程使用场景理解和原理的初步认识。 ......
编程语言 实战 语言 时代

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。 答案2023-05-04: 这段代码实现了使用 libswscale 库进行视频缩放的功能。下面是程序的主要流程: 1.获取命令行参数,包括输出文件名和目标图像大小。 2. ......
示例 scaling_video Scaling scaling 语言

从案例中详解go-errgroup-源码

一、背景 某次会议上发表了error group包,一个g失败,其他的g会同时失败的错误言论(看了一下源码中的一句话The first call to return a non-nil error cancels the group,没进一步看其他源码,片面理解了)。 // The first ca ......
go-errgroup 源码 errgroup 案例 go

go 语言 接口、并发与协程、信道,缓冲信道、mutex、异常处理

==接口== 1.实现多个接口 2.接口嵌套 3.接口零值 package main import "fmt" // 接口 //1 实现多个接口 具体类型可以赋值给多种接口类型 //type Animal interface { // run() //} // //type Dog interfac ......
信道 接口 语言 mutex go

[ubuntu]安装配置go

系统环境 ubuntu18.04 安装配置 安装Go语言 sudo apt-get update sudo apt-get -y upgrade wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz sudo tar ......
ubuntu

【访问者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 访问者模式(Visitor Pattern)是一种行为型模式。它封装一个访问者类,把各元素类的操作集合起来,目的是将数据结构与数据操作分离。在不改变原有元素类数据结构的前提下,改变了元素类的执行算法。 当某些较为稳定的东西(数据结构或算法),不想直接被改变但又想扩展功能,这时候适合用访问者模式 ......
设计模式 访问者 语言 模式 Python

Go坑:time.After可能导致的内存泄露问题分析

Go 中 time.After 可能导致的内存泄露 一、Time 包中定时器函数 go v1.20.4 定时函数:NewTicker,NewTimer 和 time.After 介绍 time 包中有 3 个比较常用的定时函数:NewTicker,NewTimer 和 time.After: New ......
内存 问题 After time

go krotos proto编译引用外部包 was not found or had errors

前言 kratos protos 生成 pb.go 文件时,会出现引用其他 proto 文件报错 was not found or had errors,因找不到此文件而无法编译。 解决 首先我们先了解下 protoc 中 import 的两条规则: import 不允许使用相对路径; import ......
errors krotos found proto had

Go语言 - 二进制数转十进制数

二进制转10进制的方法 最近在备考软考的软件设计师考试,在学习过程遇到很多于计算机基础计算相关的知识点,正好最近在学Go语言,所以就把计算的方式用Go语言实现一下 代码示例 /* 转换规则: 11001 从末尾到开头,以2为底数,从0开始递增为指数 * 二进制数,然后将这些二进制数相加即可得出10进 ......
十进制 二进制 语言

Go并发编程:发生死锁、活锁的案例分析

什么是死锁、活锁 什么是死锁:就是在并发程序中,两个或多个线程彼此等待对方完成操作,从而导致它们都被阻塞,并无限期地等待对方完成。这种情况下,程序会卡死,无法继续执行。 什么是活锁:就是程序一直在运行,但是无法取得进展。例如,在某些情况下,多个线程会争夺同一个资源,然后每个线程都会释放资源,以便其他 ......
案例分析 案例

2、go程序接入prometheus

参考:https://prometheus.io/docs/guides/go-application/ go默认基础指标 package main import ( "net/http" "github.com/prometheus/client_golang/prometheus/promhtt ......
prometheus 程序

Go 汇编详解

Go 汇编详解 https://mp.weixin.qq.com/s?__biz=MzI1MzYzMjE0MQ==&mid=2247502457&idx=1&sn=9b754e6b17ade0d48694d089b6537092&chksm=e9d3019bdea4888df6dbde663632d ......
Go

Go

macOS brew install go export GOPROXY=https://proxy.golang.com.cn,direct Linux brew install go export GOPROXY=https://proxy.golang.com.cn,direct Window ......
Go

Go-net源码解析

学习一门语言,那么我们必然要涉及到网络通信,而谈到网络通信却又离不开tcp,这里我们利用go标准库net来模拟一个服务端、客户端的流程,从而深入学习其中的代码流程(深入其中解析本质) func main() { server, err := net.Listen("tcp", "127.0.0.1: ......
源码 Go-net net Go

go 数据类型

序号 类型和描述 1 布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。 3 字符串类型:字符串就是一 ......
类型 数据 go

2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。

2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。 答案2023-04-30: resampling_audio.c 是 FFmpeg 中的一个源文件,其主要功能是实现音频重采样。 音频重采样是指将一段音频数据从一个采样率、声道数或 ......

go语言中的数据哈希

哈希算法 哈希函数的基本特征 输入可以是任意长度。 输出是固定长度。 根据输入很容易计算出输出。 根据输出很难计算出输入(几乎不可能)。 两个不同的输入几乎不可能得到相同的输出。 SHA SHA(Secure Hash Algorithm) 安全散列算法,是一系列密码散列函数,有多个不同安全等级的版 ......
语言 数据

为什么 Go for-range 的 value 值地址每次都一样?

原文链接: 为什么 Go for-range 的 value 值地址每次都一样? 循环语句是一种常用的控制结构,在 Go 语言中,除了 for 关键字以外,还有一个 range 关键字,可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。 但是在使用 ......
for-range 地址 range value for

Go语言入门13(runtime包)

Runtime包 GOMAXPROCS() ​ 用来设置可以并行计算的CPU核数最大值,并返回之前的值,具体使用方法上一篇有些,这里不再赘述 Gosched() ​ 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行,并在下次某个时候从该位置恢复执行 Goexi ......
runtime 语言

【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 模板方法模式(Template Method Pattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ......
设计模式 模板 语言 模式 方法

go语言channel

go语言channel 设计原理 go语言中提倡:不要通过共享内存方式进行通信,而应该通过通信的方式共享内存。 在很多编程语言中,多个线程传递数据的方式一般是共享内存,为了解决线程竞争,我们需要限制同一时间能够读写这些变量的线程数量,然而这与go语言的设计并不相同。 虽然在go语言中也能使用共享内存 ......
channel 语言

Cheems. Would you like going to the dock later to order some French fries?

Prologue " So, where are we going? " " I'm going to the dock later to order some French fries. " " No, you misunderstood... I mean, what is the ultima ......
Cheems French Would going fries

云原生时代崛起的编程语言Go基础实战

Go语言由于来自全球技术大厂谷歌创造及推动,其生态发展极其迅速,有可能成为未来十年内最有统治力的开发语言。本篇主要介绍Go目前发力的使用场景、开发环境、基础命令、命名规范,进一步了解其原生标准库的强大,最后通过多个Go代码示例演示了基础语法的使用,从而具备初级编程能力。 ......
编程语言 实战 语言 基础 时代

go语言 数组和切片、可变长参数、maps、字符串、指针、结构体、方法、接口

==数组和切片== 数组 # 1 定义,初始化,使用 # 2 数组是值类型 数字,字符串,布尔,数组,都是值类型,真正直接存数据 切片,map,指针 引用类型,是个地址,指向了具体的值 # 3 数组长度 # 4 循环打印数组 # 5 多纬数组 # 6 数组定义并赋初值 ,把第99 赋值为1 ,其他都 ......
数组 字符串 指针 字符 接口

Go

今日内容 1 字符串 package main // 字符串 func main() { // 1 定义字符串 //var s = "中alqz" // 2 字符串可以按下标取值,不能改 //s[0]=98 //fmt.Println(s[0]) // 取字节,是个数字 //fmt.Println( ......
Go

Go笔记(十):函数

1、函数 函数一般用于执行某一特定的任务,go函数有三个要素:函数名称、返回类型、参数。 2、函数特性 1、go中不允许函数重载(overload),不允许函数同名; 2、go中函数不能嵌套函数,但可以嵌套匿名函数; 3、函数可作为参数传递给另一个函数; 4、函数的返回值可以是一个函数; 5、函数调 ......
函数 笔记