グローバル ミューテックスを使用して、Go アプリケーションの 1 つのインスタンスだけがシステム全体で実行されるようにするにはどうすればよいですか?
グローバル ミューテックスを使用した Golang 実行可能ファイルの単一インスタンスへの制限
アプリケーションの単一インスタンスを強制するのは一般的な要件です。 Golang は、sync.Mutex パッケージを使用した便利なソリューションを提供します。ただし、この方法は単一プロセス内でのみ機能します。アプリケーションをシステム全体の単一インスタンスに制限するには、グローバル ミューテックスを利用する必要があります。
Windows では、kernel32.dll ライブラリはシステム全体のミューテックスを作成する CreateMutexW 関数を提供します。この関数には、プロセス間でミューテックスを識別するための一意の名前が必要です。
例:
var ( kernel32 = syscall.NewLazyDLL("kernel32.dll") procCreateMutex = kernel32.NewProc("CreateMutexW") ) func CreateMutex(name string) (uintptr, error) { ret, _, err := procCreateMutex.Call( 0, 0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(name))), ) switch int(err.(syscall.Errno)) { case 0: return ret, nil default: return ret, err } } // mutexName starting with "Global\" will work across all user sessions _, err := CreateMutex("SomeMutexName")
CreateMutex で「Global」で始まる名前を指定すると、ミューテックスには、複数のユーザー セッション間でアクセスできます。これにより、システム上でアプリケーションのインスタンスが 1 つだけ実行されることが保証されます。
以上がグローバル ミューテックスを使用して、Go アプリケーションの 1 つのインスタンスだけがシステム全体で実行されるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?
