在 Go 中,syscall.CreateMutex() 函数是用于创建一个新的互斥锁对象。但是,在 Windows 平台上,该函数需要使用 windows 包中的 API 调用来实现。
下面是在 Windows 平台上使用 windows 包创建互斥锁的示例代码:
package main
import (
"fmt"
"golang.org/x/sys/windows"
)
func main() {
mutex, err := windows.CreateMutex(nil, false, "MyMutex")
if err != nil {
fmt.Println("Error creating mutex:", err)
return
}
defer windows.CloseHandle(mutex)
fmt.Println("Mutex created successfully.")
}
在此示例中,我们使用了 golang.org/x/sys/windows 包中提供的 CreateMutex() 函数来创建一个新的互斥锁对象,并指定了名称为 "MyMutex"。如果出现任何错误,则会返回错误信息并退出程序。最后,我们使用 windows.CloseHandle() 函数关闭了该句柄。
注意:在 Windows 平台上,需要使用管理员权限运行程序才能成功创建命名互斥锁。否则将会出现访问被拒绝的错误。




