func say(s string) { for i := 0; i hello 世界 こんにちは 世界 こんにちは 世界 こんにちは 世界 hellooutput whod runtime.gosched():
func say(s string) { for i := 0; i hello こんにちは こんにちは こんにちは hello説明
func say(s string) { for i := 0; i in goバージョン1.5より前に、runtime.gosched()は、呼び出されたときに他のゴルチンのコントロールを明示的に生成しました。 GOプログラムはデフォルトで単一のOSスレッドで実行されている間、runtime.gosched()により、スケジューラはゴルチン間で実行を切り替えることができました。したがって、上記のコード例では、「world」出力は、runtime.gosched()が呼び出されたときにのみ表示されました。スケジューラが「世界」印刷ステートメントを実行しているゴルウチンに切り替えることができたためです。これにより、Goroutinesを実行するために複数のOSスレッドを作成する場合があります。ただし、先制的なマルチタスクシステムとは異なり、ゴルチンは他のゴルチンが実行できるように、まだ明示的に制御をもたらす必要があります。これは、GOがスケジューラに自発的にコントロールを降伏させる協調的なマルチタスクを使用するためです。 GomaxProcsが2に設定された上記の例に見られるように、これは予測不可能な出力パターンにつながる可能性があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3