前の例では、アトミック演算を使用して、単純なカウンターの状態を管理する方法について説明しました。さらに複雑な状態の場合は、mutexを使用して、複数のゴルーチン間でデータに安全にアクセスできます。 |
|
![]() ![]()
|
|
|
|
Container にはカウンターのマップが含まれます。これは、複数のゴルーチンから同時に更新したいので、 |
|
|
|
|
|
ミューテックスの初期値はそのまま使用できるので、ここでは初期化は必要ありません。 |
|
|
|
|
|
この関数は、ループ内で指定されたカウンターの値をインクリメントします。 |
|
複数のゴルーチンを同時に実行します。すべて同じ |
|
ゴルーチンが完了するのを待ちます。 |
|
プログラムを実行すると、カウンターが期待どおりに更新されたことがわかります。 |
|
次に、ゴルーチンとチャンネルのみを使用して、この同じ状態管理タスクを実装する方法について説明します。 |
次の例: 状態のあるゴルーチン。