定时器context select go
go语言切片
特性 长度可变、 内容可变、 引用类型、 底层基于数组 定义 var s1 []int // 长度、容量为0的切片,零值 var s2 = []int{} // 长度、容量为0的切片,字面量定义 var s3 = []int{1, 3, 5} // 字面量定义,长度、容量都是3 var s4 = m ......
go 实现ringbuffer以及ringbuffer使用场景介绍
> ringbuffer因为它能复用缓冲空间,通常用于网络通信连接的读写,虽然市面上已经有了go写的诸多版本的ringbuffer组件,虽然诸多版本,实现ringbuffer的核心逻辑却是不变的。但发现其内部提供的方法并不能满足我当下的需求,所以还是自己造一个吧。 源码已经上传到github ``` ......
go语言数组
线性数据结构 线性表 是一种抽象的数学概念,是一组元素的序列的抽象,它由有穷个元素组成(0 个或任意个)。包括顺序表和链接表。 顺序表:使用一大块连续的内存顺序存储表中的元素,这样实现的表称为顺序表,或称连续表 在顺序表中,元素的关系使用顺序表的存储顺序自然地表示; 链接表:在存储空间中将分散存储的 ......
从源码分析 Go 语言使用 cgo 导致的线程增长
TDengine Go 连接器 使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 cgo 调用开始解析 Go 源码,分析造成线程增长的原因。 ## 转换 cgo 代码 对 driver-go/wrapper/taosc.go 进行转换 `go tool cg ......
浏览器中跑定时器跑着跑着就慢了(离开当前页面,再次进来后时间会慢一点)
最近再写一个考试系统,到点交卷,在手机上跑定时器是没问题的,在浏览器上跑的时候,一离开页面(指切换标签页),再次回来时间就会慢很多 关于浏览器变慢的原因是,当离开当前页面时,cpu检测到你不在当前页面,为了节省资源,会放慢浏览器的时间。导致进入页面,时间变慢。 有没有解决办法呢,当然是有的,如果我们 ......
写给go开发者的gRPC教程-通信安全
使用 TLS 安全传输数据 什么是 SSL/TLS SSL 包含记录层(Record Layer)和传输层[1],记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509[2]认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密匙作为会话密匙(Session key[3])。这个 ......
使用Go语言中的Channel实现并发编程
## 引言: Go语言是一门开源的编程语言,以其高效、简洁和并发编程的能力而闻名。在Go语言中,Channel是一个重要的概念,它提供了一种安全、高效地在并发程序中进行通信的机制。本文将介绍Go语言中的Channel,以及如何使用Channel实现并发编程。 ## 一、什么是Channel? 在Go ......
Linux下三组I/O复用函数的比较(select、poll、epoll)
前面我们讨论了select、poll和epoll三组I/O复用系统调用,这三组系统调用都能同时监听多个文件描述符。它们将等待由timeout参数指定的超时时间,直到一个或多个文件描述符上有事件发生时返回,返回值是就绪的文件描述符的数量。返回0表示没有事件发生。现在我们从事件集、最大支持文件描述符数、 ......
极客时间--Go并发编程实践课--Mutex学习总结
互斥锁的实现机制 互斥锁是并发控制的一个手段,是为了避免竞争而建立的一种并发控制机制。在并发编程中,如果程序中的一部分会被并发访问或修改,那么,为了避免并发访问导致的意想不到的结果,这部分程序需要被保护起来,这部分被保护起来的程序,就叫做临界区。可以说,临界区就是一个被共享的资源,或者说是一个整体的 ......
protobuf 中go_package的意思
一个简单的 protobuf 文件定义如下: response.proto syntax = "proto3"; option go_package = "github.com/TripleCGame/apis/api;api"; import "google/protobuf/struct.pro ......
odoo 定时任务
<record id="schedule_statistic_num_sum" model="ir.cron"> <field name="name">加载发票</field> <field name="model_id" ref="model_hr_expense_invoicesource_he ......
Go语言如何判断两个对象是否相等
# 1. 引言 在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如: 1. **单元测试**:编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等。 2. **数据结构操作**:在使用`map`等数据结构时,可能需要判断两个对象是 ......
golang 学习之 etcd protobuffer grpc 服务注册发现 go-micro
#1.etcd使用步骤 ####1)下载:https://github.com/etcd-io/etcd/releases/ ####2)配置环境变量 ####3)编辑local-cluster-profile文件:(利用goreman 启动方式,生产环境参考官方文档) ``` etcd1: etc ......
golang的打点定时器
## 定时器 方式1:使用time.NewTicker(时间间隔)来设置定时器 ```go // 定时器, 定义一个1秒间隔的定时器 ticker := time.NewTicker(time.Second) n := 0 for i := range ticker.C { fmt.Println( ......
go语言中protobuf以及grpc的使用
#### 首先定义数据结构,保存为.proto文件 ```protobuf syntax = "proto3"; package tutorial; // The protocol compiler generates a class from the following .proto file w ......
为什么说 Go 语言字符串是不可变的?
**原文链接:** [为什么说 Go 语言字符串是不可变的?](https://mp.weixin.qq.com/s/AOb6AjKwyTwLeAUou0AU-Q) 最近有读者留言说,平时在写代码的过程中,是会对字符串进行修改的,但网上都说 Go 语言字符串是不可变的,这是为什么呢? 这个问题本身并 ......
Kubernetes(k8s)定时任务:CronJob
Kubernetes(k8s)定时任务:CronJob,kubernetes CronJob和Linux crontab两者差异,CronJob表达式语法,创建CronJob定时任务,创建具有超时时间的CronJob定时任务 ......
go-shadowsw问题小记
Golang shadows是指在Go语言中,一个变量在内部作用域中被另一个同名同类型的变量声明而隐藏的情况。这种情况可能导致一些意想不到的结果,比如返回错误的值或者引用错误的变量。 func BadRead(f *os.File, buf []byte) err error { for { n, ......
Go 开源库运行时依赖注入框架 Dependency injection
# Dependency injection 一个Go编程语言的运行依赖注入库。依赖注入是更广泛的控制反转技术的一种形式。它用于增加程序的模块化并使其具有可扩展性。 ## 实例展示(High API): ```golang type A struct { Name string } func New ......
深入了解定时任务(一)
单词辅助记忆 scheduled 车堵了? 线索 java.util.concurrent.Future<V>site:spring.io taskhttps://docs.spring.io/spring-framework/docs/4.2.x/spring-framework-referenc ......
go helloworld 部署到k8s
打包容器shutdown_Dockerfile同级目录执行sudo docker build -t hello:v0.01 -f shutdown_Dockerfile . 导出docker 容器AAA:8.2,8.2表示镜像版本号docker save -o tar名称.tar AAA:8.2 B ......
Go 限制goroutine
限制单位时间内的 goroutine 执行大小 ``` package main import ( "fmt" "time" ) // 限制单位时间内执行次数 func main() { limitChan := make(chan struct{}) recoverChan := make(cha ......
使用kalibr做相机内参标定时,报错:“ImportError: No module named igraph”
这是因为电脑没有安装python的igraph库,所以需要安装igraph库。 1. sudo apt-get install -y libigraph0-dev 2. pip install python-igraph==0.7.1.post6 (python2只支持0.8X以前的版本) 安装完毕 ......
select Dependency
pom.xml -> Dependencies -> Add.. -> Select Dependency 只要是workspace 中有的都可以过滤出来 scope 也是可选的,可以提高一些效率,避免手动敲打依赖 ......
Go 常见问题
# Go常见问题 ### 问题: go.mod file not found #### 现象 ```log go.mod file not found in current directory or any parent directory. ``` #### 原因 Go1.16之后引入GoMod, ......
Go 单元测试
# 单元测试 > 在执行单元测试的过程中, 如果被测试的函数中, 引用了较为复杂的函数. > 要确保该引用包中在引用时已被初始化, 避免空出现内存/指针错误等问题~ ## 单元测试编写 ### 测试示例 逻辑代码: `string_handler.go` ```go func stringBuild ......
Go协程常规参考
# Go协程 协程对性能的提升: 程序性能由三者决定: 计算时长, 磁盘IO, 网络IO 协程能有效解决IO问题. 对于计算密集型程序则用处较小. # 1. 最佳协程使用实践 ```go // 子协程 func CoroutineSubFunc(wg *sync.WaitGroup, resultC ......
.net core Abp定时任务实现
public class UseTimeJob : Job//重点是继承Job { public readonly IUserCourseJobTimeService _userCourseJobTimeService; public readonly IOrganizationAppService ......
Element-ui中 选择器(select)多选下拉框实现全选功能
### Element-ui中 选择器(select)多选下拉框实现全选功能 >需求(产品整活): >需要下拉时候可以一键全选 >父组件运用 ```html mulSelecteds = val"> ``` >子组件 ```html ``` ......
shell脚本用来定时删除一些文件以及date的一些加减操作
date命令加减操作:date +%Y%m%d #显示当天年月日date -d “+1 day” +%Y%m%d #显示明天的日期date -d “-1 day” +%Y%m%d #显示昨天的日期date -d “-1 month” +%Y%m%d #显示上一月的日期date -d “+1 mont ......