随笔分类 -  Go

上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要:package main import ( "fmt" "net" "sync" "time" ) func main() { server := "42.51.129.175" // 要检查的服务器地址 ports := make([]int, 65535) // 要检查的端口范围,从22到655 阅读全文
posted @ 2023-12-21 15:51 朝阳1 阅读(43) 评论(0) 推荐(0)
摘要:接着使用如下命令行运行上面的代码: go run -gcflags "-m -l" main.go 使用 go run 运行程序时,-gcflags 参数是编译参数。 其中 -m 表示进行内存分配分析,-l 表示避免程序内联,也就是避免进行程序优化。 1、Mac下编译Linux, Windows平台 阅读全文
posted @ 2023-12-14 10:38 朝阳1 阅读(567) 评论(0) 推荐(0)
摘要:Type是类型,Kind是类别。Type和Kind可能是相同的,也可能是不同的 var num int = 10 num的Type是int,Kind也是int var stu Student stu的Type是 包名.Student,Kind是struct 阅读全文
posted @ 2023-12-14 10:37 朝阳1 阅读(27) 评论(0) 推荐(0)
摘要:安装 go get -u github.com/xtaci/kcp-go import ( "fmt" "github.com/xtaci/kcp-go" "golang.org/x/net/ipv4" "golang.org/x/net/ipv6" "net" ) // KCP 服务器 func 阅读全文
posted @ 2023-12-04 11:11 朝阳1 阅读(611) 评论(0) 推荐(0)
摘要:asynq是基于reids的队列,支持多种形式 消费者 package main import ( "context" "fmt" "log" "os" "os/signal" "syscall" "time" "github.com/hibiken/asynq" ) // HandleMsg 处理 阅读全文
posted @ 2023-12-02 15:01 朝阳1 阅读(134) 评论(0) 推荐(0)
摘要:创建plugin_1.go&编译 package main import "fmt" func Greet(name string) { fmt.Println("Hello", name) } go build -buildmode=plugin -o xxxx.so plugin_1.go 加载 阅读全文
posted @ 2023-12-02 09:41 朝阳1 阅读(50) 评论(0) 推荐(0)
摘要:go build -ldflags="-s -w" -o server main.go 阅读全文
posted @ 2023-11-22 15:04 朝阳1 阅读(53) 评论(0) 推荐(0)
摘要:最近有个需求是把看广告的日志转成excel package main import ( "bufio" "encoding/json" "flag" "fmt" "github.com/xuri/excelize/v2" "os" "time" ) // Ad 广告 type Ad struct { 阅读全文
posted @ 2023-11-16 11:49 朝阳1 阅读(185) 评论(0) 推荐(0)
摘要:package main import ( "fmt" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/disk" "github.com/shirou/gopsutil/host" "github.com/shirou/go 阅读全文
posted @ 2023-11-16 11:26 朝阳1 阅读(64) 评论(0) 推荐(0)
摘要:package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "crypto/x509/pkix" "encoding/pem" "math/big" "net" "os" "time" ) func main() { max := n 阅读全文
posted @ 2023-11-16 09:39 朝阳1 阅读(80) 评论(0) 推荐(0)
摘要:创建 myworkspace 主项目 mkdir myworkspace cd myworkspace 创建 common 子项目 mkdir common && cd common go mod init common vim common.go myworkspace/common/common 阅读全文
posted @ 2023-11-14 16:57 朝阳1 阅读(90) 评论(0) 推荐(0)
摘要:反射的结构体 //reflect/type.go type Type interface { // 该类型内存分配大小(内存对齐单位子节) Align() int // 该类型作为结构体字段时内存分配大小(内存对齐单位子节) FieldAlign() int // 根据index in [0, Nu 阅读全文
posted @ 2023-11-14 16:24 朝阳1 阅读(35) 评论(0) 推荐(0)
摘要:写锁需要阻塞写锁:一个协程拥有写锁时,其他协程写锁定需要阻塞 写锁需要阻塞读锁:一个协程拥有写锁时,其他协程读锁定需要阻塞 读锁需要阻塞写锁:一个协程拥有读锁时,其他协程写锁定需要阻塞 读锁不能阻塞读锁:一个协程拥有读锁时,其他协程也可以拥有读锁 阅读全文
posted @ 2023-11-14 09:27 朝阳1 阅读(17) 评论(0) 推荐(0)
摘要:需要下载graphviz package main import ( "math/rand" "os" "runtime/pprof" "time" ) func generate(n int) []int { rand.Seed(time.Now().UnixNano()) nums := mak 阅读全文
posted @ 2023-11-13 15:28 朝阳1 阅读(60) 评论(0) 推荐(0)
摘要:需要下载graphviz package main import ( "log" "os" "runtime/trace" ) func main() { file, err := os.Create("trace.out") if err != nil { log.Fatal(err) } def 阅读全文
posted @ 2023-11-13 15:26 朝阳1 阅读(115) 评论(0) 推荐(0)
摘要:每一个 OS 线程都有一个固定大小的内存块(一般会是 2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量。 这个固定大小的栈同时很大又很小。因为 2MB 的栈对于一个小小的 goroutine 来说是很大的内存浪费,而 对于一些复杂的任务(如深度嵌套的递归)来 阅读全文
posted @ 2023-11-13 11:14 朝阳1 阅读(99) 评论(0) 推荐(0)
摘要:nats自行安装 消费端 package main import ( "fmt" "github.com/nats-io/nats.go" ) ////nats-server 在管理 subject 的时候是通过’.’ 进行分割的,server 底层是使用 tree module 分层管理 subj 阅读全文
posted @ 2023-11-10 14:21 朝阳1 阅读(437) 评论(0) 推荐(0)
摘要:golang主要有两种锁:互斥锁和读写锁 互斥锁 Mutex 用于提供一种加锁机制(Locking Mechanism),保证同一时刻只有一个goroutine在临界区运行 package main import ( "fmt" "sync" "time" ) func main() { var m 阅读全文
posted @ 2023-11-10 11:28 朝阳1 阅读(68) 评论(0) 推荐(0)
摘要:断线重连的逻辑很简单,就是把用户存到服务器内存中,当客户端再次登录的时候,判断内存中是否有用户的值,有的话替换 package main import ( "fmt" "github.com/gorilla/websocket" "log" "net/http" "sync" "time" ) ty 阅读全文
posted @ 2023-11-10 11:09 朝阳1 阅读(316) 评论(0) 推荐(0)
摘要:要是记不住crontab格式,就去网上生成,在线crontab有很多。例如 https://www.pppet.net/ package main import ( "fmt" "github.com/robfig/cron/v3" "time" ) /** 第一个*: second,范围(0 - 阅读全文
posted @ 2023-11-09 14:21 朝阳1 阅读(361) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 下一页