Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Bir şey yapan tek bir goroutine varsa ve devam etmeden önce işini bitirmesini beklemek istiyorsanız, aşağıdaki örneği kullanabilirsiniz.


Örnek


package main

import (
"fmt"
"time"
)

func main() {
ch := make(chan bool)

go paint(ch)

// Acquire lock by waiting for channel to send something.
<- ch

fmt.Println("done")
}

func paint(ch chan <- bool) {
fmt.Println("started painting")

time.Sleep(2 * time.Second)

fmt.Println("finished painting")

// Instruct to release lock by sending a message.
ch <- true
}

started painting
finished painting
done