私は16個のgoルーチンを持っています。通常はstructです。goルーチンのGolang順出力
struct output{
index int,
description string,
}
は今、これらすべての16のゴールーチンは、並列に実行し、すべてのゴールーチンからの総期待される出力構造体は、万人と予想されます。私はそれを行うには非常に高価ですgo langの基本的な並べ替えを使用して、いくつかのインデックスに基づいて出力を並べ替えるために取る方法で私を助けることができると私はファイルに "記述"フィールドを書く必要があります索引の順序で。例えば
、 ゴールーチンは{2、 "こんにちは"}として出力を与える場合は、{9、 "ねえ"}、{4、 "はいはい"}、私の出力ファイルは、ちょっと こんにちは はいはい が含まれている必要があります
これらのすべてのgoルーチンは並行して実行され、実行順序を制御することはできません。したがって、索引を渡して最終的に出力を順序付けします。
PriorityQueue:https://golang.org/pkg/container/heap/#example__priorityQueue –
各ゴルーチンが独自の出力を並べ替えてから結果をマージするとどうなりますか?並行して並べ替えが行われるため、いくらかの改善が得られるかもしれません。基数ソートを試行して、典型的なO(N * log(N))ソートよりも優れたパフォーマンスを発揮するかどうかを調べることもできます。 –