imは画像をセグメントに分解して操作するアルゴリズムを記述していますが、現在Goルーチンを使用している方法は最適ではありません。ワーカープールでGOルーチンを送信する方法
私はそれをワーカープールに分割し、ルーチンを起動し、各作業者に画像が完成するまで新しい仕事をさせたいと思います。
私はそれのような8に分かれてあります。私は、Goは、私は労働者のシステムにこれを最適化する方法を次々と、ルーチンオフ火災
var bounds = img.Bounds()
var halfHeight = bounds.Max.Y/2
var eighthOne = halfHeight/4
var eighthTwo = eighthOne + eighthOne
var eighthThree = eighthOne + eighthTwo
var eighthFive = halfHeight + eighthOne
var eighthSix = halfHeight + eighthTwo
var eighthSeven = halfHeight + eighthThree
elapsed := time.Now()
go Threshold(pic, c2, 0, eighthOne)
go Threshold(pic, c5, eighthOne, eighthTwo)
go Threshold(pic, c6, eighthTwo, eighthThree)
go Threshold(pic, c7, eighthThree, halfHeight)
go Threshold(pic, c8, halfHeight, eighthFive)
go Threshold(pic, c9, eighthFive, eighthSix)
go Threshold(pic, c10, eighthSix, eighthSeven)
go Threshold(pic, c11, eighthSeven, bounds.Max.Y)
たから?ここで
おかげ
参照は、[これは移動中に慣用ワーカースレッドプールですか?](http://stackoverflow.com/questions/38170852/is-this-an-idiomatic-worker -thread-pool-in-go/38172204#38172204) – icza
答えは、最も確実にバッファされたチャネルです。あなたがそれを経験していないなら、go tourは同時並行プリミティブをかなりうまく説明します。 https://tour.golang.org/concurrency/2 – Gant