1 Star 0 Fork 1

menuiis / gkit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
deadlock.go 975 Bytes
一键复制 编辑 原始数据 按行查看 历史
menuis 提交于 2024-04-22 10:18 . init
package main
import (
"net/http"
"sync"
"time"
"gitee.com/menciis/gkit/watching"
)
func init() {
http.HandleFunc("/lockorder1", lockorder1)
http.HandleFunc("/lockorder2", lockorder2)
http.HandleFunc("/req", req)
go http.ListenAndServe(":10003", nil)
}
func main() {
w := watching.NewWatching(
watching.WithCollectInterval("5s"),
watching.WithCoolDown("1m"),
watching.WithDumpPath("/tmp"),
watching.WithTextDump(),
watching.WithGoroutineDump(10, 25, 2000, 10000),
)
w.EnableGoroutineDump().Start()
time.Sleep(time.Hour)
}
var (
l1 sync.Mutex
l2 sync.Mutex
)
func req(wr http.ResponseWriter, req *http.Request) {
l1.Lock()
defer l1.Unlock()
}
func lockorder1(wr http.ResponseWriter, req *http.Request) {
l1.Lock()
defer l1.Unlock()
time.Sleep(time.Minute)
l2.Lock()
defer l2.Unlock()
}
func lockorder2(wr http.ResponseWriter, req *http.Request) {
l2.Lock()
defer l2.Unlock()
time.Sleep(time.Minute)
l1.Lock()
defer l1.Unlock()
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/menciis/gkit.git
git@gitee.com:menciis/gkit.git
menciis
gkit
gkit
4f74120a101e

搜索帮助

344bd9b3 5694891 D2dac590 5694891