goroutine

    0

    2答えて

    このような状況を考慮してください。 1つのメインgoroutineと10個の補助 のゴルーチンがあります。すべてのユーザーはchannelにアクセスできます。メインチャンネルは1000の番号をこのチャンネルに送信し、子機の番号はこのチャンネルから読み取ります。 各従属ゴルーチンが100個の数字を正確に読み取ることが保証されているか、またはこの金額はいくつかのゴルーチンが99個の数字と101個の数字

    1

    2答えて

    関数のスライスをループし、その中のすべての関数を呼び出しようとしています。しかし、私は奇妙な結果を得ています。私のコードは次のとおりです: 私はそれが関数A、B、そしてCを呼び出すと思っていましたが、私の出力はCしか得られません。 何が間違っているのか、その背後にある論理を示唆してください。また、どのように私は希望の動作を得ることができます。 Go Playground

    1

    1答えて

    現在、私は検索エンジンプロジェクトに取り組んでいます。より速いクロールスピードのために、私はリンク訪問ごとに1つのゴルーチンを使用します。しかし私は私に不思議に思う2つの問題に遭遇しました! まず一つはコードサンプルです: package main import "fmt" import "sync" import "time" type test struct { runn

    1

    2答えて

    このblog postで説明されているパイプとフィルターのパターンを使用しています。 これを効果的にテストする方法が不思議です。私の考えは、各フィルタを個別にテストすることでした。たとえば、私は今の私のテストでこの func watchTemperature(ctx context.Context, inStream <-chan int) { maxTemp = 90 go

    0

    1答えて

    新しいlangに移動すると私はgoroutinesを使用する単純な再帰アルゴリズムを作成しようとしています。私はgoroutineからの出力を受け取るためにチャンネルを使用していますが、そうしようとすると「致命的なエラーが発生します:すべてのgoroutinesが眠っています - デッドロックです!エラー。私がチャンネルコードをコメントアウトすると、すべてうまく動作します。 これは私のコードです

    1

    1答えて

    私は、発電機として利用される2つの読み取り専用チャネル<-chan Eventを持っています。 type Event struct{ time int } ように私はそれらの値を読むことができます:私はあまりtimeフィールドでEventを選択する必要がありますので、私はイベント駆動型シミュレーションのために、これらのチャネルを使用 for { select {

    1

    1答えて

    私はすべてのファイルをフォルダリンクからスキャンし、彼のサイズと彼の名前に基づいて正規表現で自分のサイズで "トップ10"を作るようにしようとしています。ファイル。コンテンツでは、私はgoroutinesでチャンネルを作っていますが、私のgoroutinesがロックされるたびに理由を理解できません。ここで package main import ( "flag" "fmt"

    1

    1答えて

    基本的には、goroutinesを使用して同時サイトマップクローラを作成しようとしています。一つのサイトマップは今のところなど を他のサイトマップへのリンクを含めることができ、複数のサイトマップへのリンクを含めることができ、これは私のデザインです: worker: - receives url from channel - processesUrl(url) processU

    0

    1答えて

    Go https://gobyexample.com/execing-processesでexecについて読んでいて、goroutinesを使って同じことをしようとしました。 次のコードでは、Goの実行をlsにして、メインスレッドで成功メッセージを表示しようとしています。しかし、それはlsだけを表示していますが、成功メッセージは表示しません。 何が起こっているのですか? ありがとうございました。

    0

    2答えて

    私は、無限の数の値を生成できるゴルーチンを持っていますが、それぞれの値を見つけるまでに時間がかかります。私は時間制限を追加する方法、例えば10秒後に、私の関数が今までに受け取った最良の値で何かをする方法を見つけようとしています。 これは、チャネル、タイマーを使用して、私の現在の「解決策」である: // the goroutine which runs infinitely // (or at l