> For the complete documentation index, see [llms.txt](https://docs.furkangulsen.com/golang-dokumani/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.furkangulsen.com/golang-dokumani/closing-channels.md).

# Closing Channels

Go dilinde, `channel`'ların kapatılması, mesajların gönderilmesi ve alınması işlemleri arasında senkronizasyon sağlayan bir yöntemdir. `close` fonksiyonu kullanılarak, bir `channel` kapatılabilir. Kapatılan bir `channel`'a mesaj gönderilemez ve bu `channel`'dan daha fazla mesaj alınamaz.

```go
package main

import "fmt"

func main() {
	jobs := make(chan int, 5)
	done := make(chan bool)

	go func() {
		for {
			j, more := <-jobs
			if more {
				fmt.Println("received job", j)
			} else {
				fmt.Println("received all jobs")
				done <- true
				return
			}
		}
	}()

	for j := 1; j <= 3; j++ {
		jobs <- j
		fmt.Println("sent job", j)
	}

	close(jobs)
	fmt.Println("sent all jobs")

	<-done
}
```

Bu örnekte, `jobs` adlı bir `channel` ve `done` adlı bir `channel` oluşturulur. `goroutine` kullanarak, `jobs` `channel`'ından mesajların alınması işlemi gerçekleştirilir.

`for` döngüsü kullanarak, `jobs` `channel`'ına üç adet mesaj gönderilir. `select` anahtar kelimesi kullanarak, mesaj gönderildiği zaman, `sent job` mesajı ekrana yazdırılır.

Daha sonra, `jobs` `channel`'ı `close` fonksiyonu kullanılarak kapatılır. Bu işlem gerçekleştirildiği zaman, `sent all jobs` mesajı ekrana yazdırılır.

`done` `channel`'ı kullanılarak, gönderilen tüm mesajların alındığı kontrol edilir. `done` `channel`'ı, `goroutine`'un tamamlandığını gösterir.

Çıktı:

```
sent job 1
sent job 2
sent job 3
sent all jobs
received job 1
received job 2
received job 3
received all jobs
```

Bu örnekte, `jobs` `channel`'ına mesajlar gönderilir ve `goroutine`'un bu mesajları alması sağlanır. Daha sonra, `jobs` `channel`'ı `close` fonksiyonu kullanılarak kapatılır. Bu işlem gerçekleştirildiği zaman, `goroutine`'un alınması gereken tüm mesajları aldığı kontrol edilir.
