0

多数のゴルーチン (30 など) から同時に大量のデータをテキスト ファイルに書き込む必要があります。私がすることはこれです:

workers.Add(core.Concurrency)
    for i := 0; i < core.Concurrency; i++ {
        go func() {
            defer workers.Done()
            writer := bufio.NewWriter(f)
            defer writer.Flush()
            a.Worker(workChan, writer)
        }()
    }

しかし、これは場合によってはうまくいかないようです。これf*os.Fileオブジェクトです。これは、場合によってはファイルにまったく書き込みません。場合によっては、一部のデータを書き込みますが、将来の書き込みは行いません。動作は非常に一貫性がなく、エラーもありません。

なぜこれが起こっているのでしょうか?

4

1 に答える 1