cloudSky's 小站

[Go] 函数参数传递的sync.Mutex不是指针会怎么样

函数传值 package main import ( "fmt" "sync" ) var a = 1 func t(lock sync.Mutex, wg *sync.WaitGroup) { defer wg.Done() lock.Lock() defer lock.Unlock() for i := 0; i < 10000000; i++ { a++ } } func main() { lock := sync.Mutex{} wg := &sync.WaitGroup{} wg.Add(2) go t(lock, wg) go t(lock, wg) wg.Wait() fmt.Println(a) } 输出 // 每次输出值都不一样 10149117

Lua小数四舍五入

保留整数 math.floor(x + 0.5) // 4.4 --> 4 math.floor(x) // 会直接舍弃小数点后的部分 保留几位小数进行四舍五入 公式为: math.floor(x * num + 0.5) / num 保留2位 num为100,3位为1000,… 比

修复rpmdb损坏无法使用yum问题

故障现象 修复Linux Polkit本地权限提升漏洞(CVE-2021-4034)时,出现如下报错 error: rpmdb: BDB0113 Thread/process 6161/140008053192768 failed: BDB1507 Thread died in Berkeley DB library error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error,

nginx 下载文件重命名

当前Nginx配置 location /download/ { if ($arg_file) { add_header Content-Disposition "attachment;filename*=utf-8'zh_cn'$arg_file"; } } Chrome、Firefox正常,但Safari下载文件名为当前域名 调整后Nginx配置 location /download/ { if ($arg_file) {