从 sync.Once 中学到的两个优化技巧
2022 10 31 04:36 PM 0 条评论 212 次查看
をつあおにまで GFW!
2022 10 31 04:36 PM 0 条评论 212 次查看
2022 10 26 12:35 PM 0 条评论 220 次查看
sync.(*Map).Store()
抛了个异常,日志如下:fatal error: sync: unlock of unlocked mutex
goroutine 63756060 [running]:
runtime.throw({0xbeeca9, 0xb45120})
#011/usr/local/go/src/runtime/panic.go:1198 +0x71 fp=0xc0010f13a0 sp=0xc0010f1370 pc=0x4336d1
sync.throw({0xbeeca9, 0xb2dd40})
#011/usr/local/go/src/runtime/panic.go:1184 +0x1e fp=0xc0010f13c0 sp=0xc0010f13a0 pc=0x45ecfe
sync.(*Mutex).unlockSlow(0x11d45a0, 0xffffffff)
#011/usr/local/go/src/sync/mutex.go:196 +0x3c fp=0xc0010f13e8 sp=0xc0010f13c0 pc=0x47851c
sync.(*Mutex).Unlock(...)
#011/usr/local/go/src/sync/mutex.go:190
sync.(*Map).Store(0x11d45a0, {0xae4960, 0xc0012f4350}, {0xae40e0, 0xc000026078})
#011/usr/local/go/src/sync/map.go:163 +0x465 fp=0xc0010f1480 sp=0xc0010f13e8 pc=0x476fa5
要知道这可是 Go 的官方库,sync.Map
可是专门为并发安全而设计的,难道直接调用它的接口也会出现线程冲突?2022 9 11 06:19 PM 2 条评论 276 次查看
2021 4 17 06:09 PM 0 条评论 452 次查看
functools.cache
的源码时发现参数列表有个诡异的 /
:def cache(user_function, /):
'Simple lightweight unbounded cache. Sometimes called "memoize".'
return lru_cache(maxsize=None)(user_function)
翻了下文档才发现这个叫 Positional-Only Parameters。2020 12 1 01:44 PM 2 条评论 525 次查看
docker build
过的镜像,另一台机器上却需要重新构建,没法利用缓存。docker build
还能使用外部缓存来加速构建。2020 5 9 06:20 PM 0 条评论 651 次查看
2019 12 26 02:12 PM 0 条评论 562 次查看
.gitlab-ci.yml
配置时,发现一个域名无法解析的问题,部分配置如下:variables:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: test
test:
stage: test
services:
- mysql:5.7
- redis:4
script:
- apk update && apk add mysql-client
- mysql -h mysql -u root -ptest < init.sql
- docker build -t test .
- docker run -t test pytest tests
2019 6 5 05:02 PM 0 条评论 54 次查看
2018 11 22 11:13 PM 3 条评论 1646 次查看
2018 7 13 03:49 PM 5 条评论 2482 次查看
分类:数据库 标签:无