ホームページ  >  記事  >  バックエンド開発  >  この問題を修正する方法: パニック: 同期: 待機グループ カウンターが負です

この問題を修正する方法: パニック: 同期: 待機グループ カウンターが負です

PHPz
PHPz転載
2024-02-05 21:42:091137ブラウズ

如何解决此问题:恐慌:同步:负数 WaitGroup 计数器

#質問内容

何度も実行しているとこの問題に遭遇することがあります。これがカウンターに関連していることは知っています。 sync.waitgroup の doned() メソッドが add() メソッドの呼び出しよりも多く呼び出された場合、このエラーがスローされます。

この問題を解決するにはどうすればよいですか?

私のコードはサイズ 4 のバッチを作成し、各バッチで何らかの処理を実行しますが、このパニックを解決するのに苦労しています。

リーリー

バッチ プログラムを作成するための基本コード:

リーリー リーリー

初期の設計は少し複雑です。この基本設計を拡張してみます。


正解


このコードによると:

リーリー

workerwg.done()

はループの外に移動する必要があると思います: リーリー ただし、デモでは

batch

は閉じられていません。したがって、事実上、Goroutine はプログラムが終了するまで永久に実行されます。 他にご質問があるかわかりません。デザインが複雑すぎます。複雑なコードは理解するのが難しく、エラーが発生しやすくなります。再設計することを検討してください。

以上がこの問題を修正する方法: パニック: 同期: 待機グループ カウンターが負ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。