Go で状態を管理するための主なメカニズムは、チャネルを介した通信です。たとえば、ワーカープールでその内容が確認できます。ただし、状態を管理するための他のオプションもいくつかあります。ここでは、複数のゴルーチンからアクセスされる_アトミックカウンター_に |
|
![]() ![]()
|
|
|
|
|
|
アトミック整数型を使用して、(常に正の)カウンターを表します。 |
|
WaitGroup を使用して、すべてのゴルーチンが作業を完了するのを待ちます。 |
|
カウンターを正確に 1000 回ずつ増加させる、50 個のゴルーチンを開始します。 |
|
|
|
カウンターをアトミックに増加させるには、 |
|
|
|
すべてのゴルーチンが完了するまで待ちます。 |
|
ここでは、どのゴルーチンも「ops」に書き込みを行っていませんが、 |
|
正確に 50,000 の操作が得られることを期待します。非アトミック整数を使用して |
|
次は、状態を管理するための別のツールであるミューテックスについて説明します。 |
次の例: ミューテックス。