2020-06-09:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数?

1.异或2.字典或集合3.排序golang语言采用异或方式,代码如下:package test21_singlenumberimport ("fmt""testing")//go test -v -test.run TestSingleNumberfunc TestSingleNumber(t *testing.T) {arr := []int{3, 1, 2, 1, 3, 4, 4}fmt.Println("数组:", arr)fmt.Println("结果:", singleNumber(a...阅读全文

简书 2020-06-12 07:32:45 福大大架构师每日一题

2020-06-10:给定一个无序数组,里面数都是成双数的,只有一个数是成单数的,求这个数? 如果上面那题里面有两个单数,怎么求出来?

1.异或2.字典或集合3.排序golang语言采用异或方式,代码如下:package test22_singlenumber3import ("fmt" "testing")//go test -v -test.run TestSingleNumberfunc TestSingleNumber(t *testing.T) { arr := []int{3, 1, 2, 1, 3, 4, 4, 5} fmt.Println("数组:", arr) fmt.Println("结果:", single...阅读全文

简书 2020-06-12 07:32:45 福大大架构师每日一题

为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了

最近看golang main函数结束,所有协程都被结束了 结论是这样:A不是main程的情况下,在A程里开启B程,A程执行完,A程return之后,B程不受影响,不会挂掉。所有子协程与main程同级的,与main程伴生 java主线程结束和子线程结束之间的关系 Main线程是个非守护线程,不能设置成守护线程。 这是因为,main线程是由java虚拟机在启动的时候创建的。main方法开始执行的时 候,主线程已经创建好并在运行了。对于运行中的线程,调用Thread.setDaemon()会 抛出异常...阅读全文

简书 2020-06-12 06:32:44 我真是刚的不像话

vscode 实用配置

install 快捷键 语言配置 插件 settings.json install Windows download Linux Mac 快捷键 文件、窗口、代码跳转、终端、用户snippets设置、断点、汉化插件 功能 操作 创建文件 ctrl+n 、 ⌘N 关闭文件 ctrl+w 保存文件 ctrl+s 创建vscode窗口 ctrl+shift+n 关闭vscode窗口 ctrl+shift+w 主命令 ctrl+shift+p 直接跳转到文件 ctrl+p 后输入文件名 列出当前可执行动...阅读全文

简书 2020-06-12 06:32:44 _JustDoIT

CUDA 及其 golang 调用 - 从入门到放弃 - 3. 真·向量内积的尽头

经过上一回的努力,我们终于将 GPU 计算的时间缩减到同 CPU 一个数量级,但是发现内存和显存之间的 memcpy 成了最主要的性能损耗。 一、固定内存 这里有一个惊人的事实,从分页的虚拟内存中的地址复制到显存,需要经过两次复制,中间需要复制到非分页的固定内存地址。同时,CUDA 还提供了 cudaMallocHost 以分配固定内存,我们可以申请这样的内存并将其地址赋予 golang 中的 slice,在 golang 端直接写这个地址,将其拷贝到显存以达到缩减 memcpy 时间的目的。 ...阅读全文

简书 2020-06-12 06:32:44 Platanuses

Golang常规加密算法

前言 为了使平时工作更加高效,自己使用golang对常规加密算法进行了封装,方便在以后的工作中直接使用。 项目地址 实现功能 实现的功能如下: 对称加密 Type Mode Padding DES ECB/CBC PKCS5/PKCS7/Zero/None 3DES ECB/CBC PKCS5/PKCS7/Zero/None AES ECB/CBC PKCS5/PKCS7/Zero/None DES CFB/OFB/CTR/GCM 3DES CFB/OFB/CTR/GCM AES CFB/OFB...阅读全文

简书 2020-06-12 06:32:43 心中的日月_pyihe

golang template 模板_v0.1.0

1.模板是什么 这里的模板是一种基于数据的文本输出,Go语言的模板与大多数语言一样,是用 “{{” 和 “}}” 来做占位符,{{ }} 里可以是表达式,也可以是变量 ,不在“{{”和“}}”的文本原样输出。。 一个简单的实例 {{.Count }} items are made of {{ .Material}} Count和Material 分别是变量,假设已经赋值为了 Count:2110,Material:“plastic”.这个时候模板渲染出来的文本就是 2110 items are ...阅读全文

简书 2020-06-12 06:32:43 郭青耀

gloang 浮点类型计算,转换和保留精度处理

float类型转换 var f float32 = 3.1415926 // float32 转 float64 fmt.Printf("%v\n", float64(f)) // 输出:3.141592502593994,6位后的小数精度是错误的 // float64 转 float32 var f2 float64 = 3.141592653589793 fmt.Println("%v\n", float32(f2)) // 输出:3.1415927,6位后的小数精度是错误的 现象: 浮点类...阅读全文

简书 2020-06-12 06:32:43 ming_a063

浅谈golang并发

1.并发的基础 1.并发和并行 并发是单位时间内同时运行的程序 并行是任意时间内同时运行的程序 其实所谓的并行,最直接的就是多台服务器并行处理,cup,内存都不会相互影响,我们平时说的并行程序是单机上的并发,并不能说成完全的并行,因为还是需要共享内存,堆栈。而并发不然,并发是规定时间内多个请求都得到执行和处理,实际上处理可能就是分时操作,并发重在避免阻塞,讲究的是程序不会因为一个阻塞而停止处理,并发实际上已经在我们很多语言都有体现过了。但是两者经常在一起出现,长得如此相像,让人还是会觉得两者是相...阅读全文

简书 2020-06-12 06:32:43 Stevennnmmm

golang基础学习-base64使用

在近期的项目开发中对图片进行base64编码,简单使用了golang的base64包。 1.使用方法 1.1 引入包 import "encoding/base64" 1.2 base64使用 这里所有的例子都是官网上的范例; code: msg := "Hello, 世界" encoded := base64.StdEncoding.EncodeToString([]byte(msg)) fmt.Println(encoded) decoded, err := base64.StdEncodi...阅读全文

简书 2020-06-12 06:32:42 Mr雨易

开源一个自己写的并发日志监听处理器,各位大佬来看看

项目地址:[go-log-listener](https://github.com/Taoey/go-log-listener) 这个项目吧,源码简单,主要当时为了学习channel和goroutine的相关特性,才有了这个项目,刚刚入门的gopher可以借鉴一下,如果你是个大佬,欢迎提建议意见,后序会持续更新,路过求个star~(卑微代码仔) # go-log-listener > 本项目始于2019年春节期间,因新型冠状病毒爆发,在家里闲着无聊,遂进行Golang的并发编程学习,在...阅读全文

Go语言中文网 2020-06-11 23:20:38 Taoey

golang 单点登录系统(go-sso)

这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jwt两种方式。收发短信相关方法已提供,仅需根据短信通道提供商提供的接口做相应的参数配置即可使用。 环境介绍 golang语言:go1.13.3+ 、 数据库:mysql5.7 缓存:redis3.0 项目地址 https://github.com/guyan0319/... 依赖包: github.com/dgrijalva/jwt-go github.com...阅读全文

Segmentfault 2020-06-16 17:32:35 guyan0319

Go语言的原子操作和互斥锁的区别

这个系列的文章里介绍了很多并发编程里经常用到的技术,除了Context、计时器、互斥锁还有通道外还有一种技术--原子操作在一些同步算法中会被用到。今天的文章里我们会简单了解一下Go语言里对原子操作的支持,然后探讨一下原子操作和互斥锁的区别。 文章的主要话题如下: 原子操作 Go对原子操作的支持 原子操作和互斥锁的区别 原子操作 原子操作即是进行过程中不能被中断的操作,针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的针对该值的操作。为了实现这样的严谨性,原子操作仅会由一个独立的CP...阅读全文

掘金 2020年06月11日 kevinyan

33. 如何手动实现一个协程池?

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime 在 Golang 中要创建一个协程是一件无比简单的事情,你只要定义一个函数,并使用 go 关键...阅读全文

掘金 2020年06月11日 王一白

Go 每日一库之 twirp

简介 twirp是一个基于 Google Protobuf 的 RPC 框架。twirp通过在.proto文件中定义服务,然后自动生产服务器和客户端的代码。让我们可以将更多的精力放在业务逻辑上。咦?这不就是 gRPC 吗?不同的是,gRPC 自己实现了一套 HTTP 服务器和网络传输层,twirp 使用标准库net/http。另外 gRPC 只支持 HTTP/2 协议,twirp 还可以运行在 HTTP 1.1 之上。同时 twirp 还可以使用 JSON 格式交互。当然并不是说 twirp 比...阅读全文

掘金 2020年06月11日 darjun

解读两个一致性哈希算法

https://github.com/ning1875/falcon-plus 这是我对开源版本falcon的变更 === 最重要的一点忘了写了:一致性哈希算法为啥能在节点变更的时候只有少量key迁移是因为sortkeys列表其实就是一个哈希环,客户端的哈希值和存量的节点哈希值在有序的sortkeys列表中的相对位置没有变,变的是下线节点前面的哈希到再前面一个之间的值所以变更率为:1-n/m ====================================================...阅读全文

Segmentfault 2020-06-15 17:32:36 ning1875

xprober 分布式c/s ping & http框架

## 我写的分布式c/s ping & http 探测代码## 地址 [https://github.com/ning1875/xprober](https://github.com/ning1875/xprober) ## xprober特点 - 基于公有混合云ec2的ping监控,可以得到不同region之间的网络延迟 - 可以从不同region对http接口发起探测,可以trace 一个http请求的各个stage的耗时 - icmp target可由 存活agent上报 / 可以在配置文...阅读全文

Segmentfault 2020-06-15 13:32:34 ning1875

我对开源版本openfalcon的变更

ps 基于open-falcon做监控现在有点落伍了,目前我这里有更好的方案,感兴趣的github issue留言 地址 https://github.com/ning1875/falcon-plus 我重写了聚合器,重写聚合器目的 poly_metric VS aggregator 解决endpoint多的聚合断点问题 解决聚合器单点问题,使得横向扩展得以实现 解耦聚合器各个单元,可以方便的增加新的聚合入口和聚合策略 .falcon agent自升级 过程说明: http-req --->hb...阅读全文

Segmentfault 2020-06-15 09:32:32 ning1875