
go
忆灬凝
这个作者很懒,什么都没留下…
展开
-
go局域网共享文件夹(静态文件服务)
【代码】go局域网共享文件夹(静态文件服务)原创 2023-11-27 15:42:30 · 341 阅读 · 0 评论 -
gfast JWT单点登录流程
keys 是给登录用户的token,是对key+uuid用aes加密后,再用base64编码的结果。首先通过token解密出key和uuid,通过key去redis获取tokenData。key 是用户id、用户名、用户密码的md5加密值,用于当redis的key。如果发现token的时间到了可刷新的时间,则自动刷新token。用户请求时,从请求头中拿到token,校验token是否过期。uuid首次是随机生成,后续有多设备登录时用一样的uuid。原创 2023-09-17 17:46:14 · 273 阅读 · 0 评论 -
golang读文件写redis
golang读文件写redis原创 2022-09-27 11:28:56 · 469 阅读 · 0 评论 -
golang合并文件
golang合并文件原创 2022-08-08 19:52:09 · 774 阅读 · 0 评论 -
go channel
channel是可以让一个goroutine发送特定值到另一个goroutine的通信机制。通过调用内置的close函数来关闭通道。 close(ch)关闭通道相当于通知接收方所有的数据都发送完毕。只有所有goroutine包括主线程的接收者全部阻塞才会死锁(这里的阻塞不是指死循环)。如果发送完数据之后没有关闭通道,但还有别的协程在跑就不会死锁,不过接收者的协程会一直阻塞。package mainimport "fmt"func main() { c := make原创 2022-04-27 21:25:43 · 430 阅读 · 0 评论 -
go用协程优化串行的坑
开协程比串行更慢的情况:2e8次时 不开协程需要0.2s,而开协程需要1.1spackage testsimport ( "fmt" "github.com/kevwan/mapreduce" "testing")type node struct { x int64 y int64}var round int = 2e8func addx(a *node) { for i := 0; i < round; i++ { a.x += 1 }}func ad原创 2022-04-16 14:50:48 · 688 阅读 · 0 评论 -
go协程的概念
进程和线程和协程:进程是程序在操作系统中的一次执行过程,每个进程中至少包含一个线程(主线程)。 线程是CPU调度的基本单位,一个线程上可以跑多个协程(协程是轻量级的线程)。 goroutine就是由官方实现的"线程池"。一个协程对应一个函数,每个go关键字都会创建一个协程。也可以创建多个goroutine执行相同的函数。并发和并行并发:多线程程序在单核cpu上运行。 并行:多线程程序在多核cpu上运行。高并发是指系统能够同时处理很多请求。go协程高并发的原因:OS线..原创 2022-03-20 18:39:33 · 730 阅读 · 0 评论 -
go闭包基础
package mainimport ( "fmt")func a() func() int { // 函数a()返回函数b() i := 0 b := func() int { i++ fmt.Println(i) return i } return b}func main() { c := a() // 变量c指向了函数b(),或者说变量c引用了函数a()内的函数b() c() // 执行c(),相当于执行b(),打印i的值 c() c() .原创 2022-01-13 16:00:16 · 134 阅读 · 0 评论