gofrs/flock
GitHub: gofrs/flock
Go 语言的线程安全文件锁库,通过简洁的 API 提供阻塞与非阻塞两种加锁方式,解决多进程或多协程并发访问同一文件时的互斥控制问题。
Stars: 747 | Forks: 80
# flock
[](https://pkg.go.dev/github.com/gofrs/flock)
[](https://github.com/gofrs/flock/blob/main/LICENSE)
[](https://goreportcard.com/report/github.com/gofrs/flock)
`flock` 实现了一个线程安全的文件锁。
它还包含一个非阻塞的 `TryLock()` 函数,允许在不阻塞执行的情况下进行锁定。
## 安装
```
go get -u github.com/gofrs/flock
```
## 用法
```
import "github.com/gofrs/flock"
fileLock := flock.New("/var/lock/go-lock.lock")
locked, err := fileLock.TryLock()
if err != nil {
// handle locking error
}
if locked {
// do work
fileLock.Unlock()
}
```
有关更详细的用法信息,请查看以下链接的包 API 文档:
[GoDoc](https://pkg.go.dev/github.com/gofrs/flock)。
## 许可证
`flock` 基于 BSD 3-Clause 许可证发布。有关更多详细信息,请参阅 [`LICENSE`](./LICENSE) 文件。
## 项目历史
该项目最初为 `github.com/theckman/go-flock`,由原作者 [Tim Heckman ](https://github.com/theckman) 转让给了 Gofrs。
标签:EVTX分析, 日志审计