import ( "fmt" "math/rand" "time")func main() { //初始10个红包, 10000元钱 count, amount := int64(10), int64(10000) //剩余金额 remain := amount //验证红包算法的总金额,最后sum应该==amount sum := int64(0) //进行发红包 for i := int64(0); i &l.
原创
2021-06-01 12:27:10
314阅读
从接触 Golang 开始,断断续续已有差不多一年左右的时间了,都是业余自己学学看看,尚主要限于语法及语言特性,还没有用它写过实际的项目。 关于 Golang 的语法及语言特性,网上有很多资源可以学习。后面某个时间,我也许会写一篇粗浅的文章,来比较一下 Golang 和 C++、Delphi 甚至 C# 等语言语法方面的特性。 &n
转载
2024-03-23 10:41:28
26阅读
Golang从1.5开始引入了三色GC, 经过多次改进, 当前的1.9版本的GC停顿时间已经可以做到极短.
停顿时间的减少意味着"最大响应时间"的缩短, 这也让go更适合编写网络服务程序.
这篇文章将通过分析golang的源代码来讲解go中的三色GC的实现原理.这个系列分析的golang源代码是Google官方的实现的1.9.2版本, 不适用于其他版本和gccgo等其他实现,
运行环境是Ubunt
转载
2024-05-20 19:01:39
67阅读
我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战 0. 摘要 在项目开
原创
2022-01-18 13:52:47
356阅读
https://www.runoob.com/w3cnote/ten-sorting-algorithm.html复杂度冒泡排序算法步骤比较相邻元素:从列表的第一个元素开始,比较相邻的两个元素。交换位置:如果前一个元素比后一个元素大,则交换它们的位置。重复遍历:对列表中的每一对相邻元素重复上述步骤, ...
堆: 一般我们提到的是二叉堆,是一种完全二叉树,二叉堆有两种:最 父节点下标:i/2 左
原创
2021-11-08 17:19:48
334阅读
0. 摘要在项目开发过程中,当操作一些用户的隐私信息,诸如密码,帐户密钥等数据时,往往需要加密后可以在网上传输.这时,需要一些高效地,简单易用的加密算法加密数据,然后把加密后的数据存入数据库或进行其他操作;当需要读取数据时,把加密后的数据取出来,再通过算法解密.1. 关于加密解密当前我们项目中常用的加解密的方式无非三种.对称加密, 加解密都使用的是同一个密钥, 其中的代表就是AES,DES非对加解
原创
2023-03-13 10:36:48
299阅读
递归实现//递归算法,计算前面两个数的和func fibonacci(front int) (back int) { if front <= 2 { back = 1 } else { back = fibonacci(front-1) + fibonacci(fron
原创
2022-10-12 14:19:23
68阅读
该包实现了四种基本排序算法:插入排序、归并排序、堆排序和快速排序。 但是这四种排序方法是不公开的,它们只被用于sort包内部使用。所以在对数据集合排序时不必考虑应当选择哪一种排序方法,只要实现了sort.Interface定义的三个方法:获取数据集合长度的Len()方法、比较两个元素大小的Less(
原创
2021-08-06 17:00:30
193阅读
前言本篇文章主要介绍Redis在一般通用的大场景下的应用,包括布隆过滤器的原理,利用布隆过滤器去重从而达到对空间进行节省;以及令牌桶、漏斗算法原理如何做到限流的;分布式锁,如何利用redis实现一个分布式锁,通过这几种应用场景去了解redis的应用Redis实现去幂等性例如在租房时,有一张房屋信息表,地址、房间号、房间其他字段... 在添加时候判断是重复? 这表里面数据达到100W+
但是数
1 前言线上有套Redis 5.x单机在运行,为了能实现Redis高可用和以后能横向扩展放弃Redis主从、Redis哨兵,决定将Redis单机迁移到Redis Cluster。此方案适用于Redis 5.X、6.X版本。 迁移方式:使用RDB、AOF迁移:
步骤较多,相对复杂;对Redis单机与Redis Cluster之间网络要求不高;停机时间长。使用Redis-shake迁移:
相
转载
2024-08-14 11:38:16
64阅读
锁的介绍与使用1 互斥锁 传统并发程序对共享资源进行访问控制的主要手段,由标准库代码包中sync中的Mutex结构体表示。//Mutex 是互斥锁, 零值是解锁的互斥锁, 首次使用后不得复制互斥锁。
type Mutex struct {
state int32
sema uint32
}sync.Mutex类型只有两个公开的指针方法//Locker表示可以锁定和解锁的对象。
ty
转载
2024-04-22 11:25:56
85阅读