golang实现自旋锁
在 Windows 下,Go 语言实现文件锁可以使用标准库中的 `os` 包。可以使用 `os.OpenFile` 函数打开文件,并使用 `os.O_CREATE` 和 `os.O_EXCL` 参数来创建并锁定文件。
以下是一个示例代码:
```
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.OpenFile("file.lock", os.O_CREATE|os.O_EXCL, 0666)
if err != nil {
fmt.Println("文件已被锁定:", err)
return
}
fmt.Println("文件锁定成功")
defer file.Close()
// do something here
}
```
在上面的代码中,当文件锁定失败时,会返回错误,表示文件已被锁定。否则,文件锁定成功,可以在后面的代码中进行读写操作。