From b050caf3dd37049f88acd74ed076f1b0355ca4b3 Mon Sep 17 00:00:00 2001 From: liuvigongzuoshi Date: Fri, 11 Dec 2020 22:37:42 +0800 Subject: [PATCH] refactor: move goroutine to inside --- examples/tinygo/main.go | 1 + ordinary/ordinary.go | 27 ++++++++++++++++----------- 2 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 examples/tinygo/main.go diff --git a/examples/tinygo/main.go b/examples/tinygo/main.go new file mode 100644 index 0000000..bea0cbf --- /dev/null +++ b/examples/tinygo/main.go @@ -0,0 +1 @@ +package tinygo diff --git a/ordinary/ordinary.go b/ordinary/ordinary.go index d6eb77f..3c48b0e 100644 --- a/ordinary/ordinary.go +++ b/ordinary/ordinary.go @@ -5,13 +5,12 @@ package ordinary import ( + "github.com/liuvigongzuoshi/go-kriging/canvas" "image" "image/color" "math" "sort" "sync" - - "github.com/liuvigongzuoshi/go-kriging/canvas" ) // Variogram ordinary kriging variogram @@ -329,14 +328,12 @@ func (variogram *Variogram) Grid(polygon PolygonCoordinates, width float64) *Gri var wg sync.WaitGroup predictCh := make(chan *PredictDate, (b[1]-b[0])*(a[1]-a[0])) - var parallel = func(j, k int, polygon []Point, xTarget, yTarget float64) { + var parallelPredict = func(j, k int, polygon []Point, xTarget, yTarget float64) { predictDate := &PredictDate{X: j, Y: k} - if pipFloat64(polygon, xTarget, yTarget) { - predictDate.Value = variogram.Predict(xTarget, - yTarget, - ) - predictCh <- predictDate - } + predictDate.Value = variogram.Predict(xTarget, + yTarget, + ) + predictCh <- predictDate defer wg.Done() } @@ -345,8 +342,16 @@ func (variogram *Variogram) Grid(polygon PolygonCoordinates, width float64) *Gri xTarget = xlim[0] + float64(j)*width for k := b[0]; k <= b[1]; k++ { yTarget = ylim[0] + float64(k)*width - wg.Add(1) - go parallel(j, k, currentPolygon, xTarget, yTarget) + + if pipFloat64(currentPolygon, xTarget, yTarget) { + wg.Add(1) + go parallelPredict(j, k, currentPolygon, xTarget, yTarget) + } + //if pipFloat64(currentPolygon, xTarget, yTarget) { + // A[j][k] = variogram.Predict(xTarget, + // yTarget, + // ) + //} } }