Golang Azərbaycan
  • Info
  • Go Compiler Installations
  • First Go Application
  • Build on Different Platforms
  • Values
  • Variables
  • Assignment Operators
  • Code Grouping Process
  • Type Conversion
  • Comments
  • Arithmetic Operators
  • Logical Operators
  • Relational Operators
  • Constants
  • if/else
  • For
  • Switch
  • Arrays
  • Slices
  • Maps
  • Range
  • Functions
    • Functions
    • Variadic function
    • Closures
    • Anonymous
    • Recursion
  • Empty Identifiers
  • Pointers
  • Strings and Runes
  • Structs
  • Anonymous struct
  • Method
  • Interface
  • Dynamic Variables
  • Generics
  • Struct embedding
  • Errors
  • Goroutines
  • Channel
  • Select
  • Timeouts
  • Non-Blocking Channel Operations
  • Closing Channels
  • Range over Channels
  • Timers
  • Ticker
  • Worker pools
  • WaitGroups
  • Rate Limiting
  • Atomic Counter
  • Sorting
  • Panic
  • Defer
  • String Functions
  • Recover
  • Text Templates
  • Json
  • Database
    • Mysql
    • Postgres
    • Mssql
Powered by GitBook
On this page
Edit on GitHub

Channel

Go dilində kanal (channel), goroutine-lər arasında məlumat ötürmək üçün istifadə olunan bir məlumat strukturudur. Kanal, make açar sözü ilə yaradılır və <- operatoru ilə məlumat göndərmə və qəbul etmə əməliyyatları həyata keçirilir.

package main

import "fmt"

func main() {
	messages := make(chan string)

	go func() { messages <- "Hello" }()

	msg := <-messages
	fmt.Println(msg)
}

Bu nümunədə, messages adlı bir kanal yaradılır.

go açar sözü ilə bir goroutine yaradılır və bu goroutine messages kanalına "Hello" mesajını göndərir.

main funksiyasında, msg adlı bir dəyişkənə messages kanalından bir mesaj alınır və ekrana yazdırılır.

Output:

Hello

Bu örnekte, channel kullanarak, bir goroutine'dan ana iş parçacığına bir mesaj gönderildi. Bu nedenle, goroutine işlemi tamamlandıktan sonra ana iş parçacığı channel'dan mesajı alır ve sonucu ekrana yazdırır.

Kanallar, Golang'de birçok durumda kullanılabilir, örneğin:

Bu nümunədə, kanal istifadə edərək bir goroutine-dən ana iş parçacığına bir mesaj göndərildi. Bu səbəbdən, goroutine tamamlandıqdan sonra ana iş parçacığı kanaldan mesajı alır və nəticəni ekrana yazdırır.

Kanallar Go dilində bir çox vəziyyətdə istifadə oluna bilər, məsələn:

  1. Goroutine-lər arasında məlumat mübadiləsi üçün

  2. Sinxronizasiya əməliyyatları üçün

  3. Tətbiqinizin performansını artırmaq üçün (paralel emal etmək)

  4. Goroutine-lər arasında məlumat yarışlarını qarşısını almaq üçün

  5. Tapşırıqların koordinasiyası və sinxronizasiyası üçün

PreviousGoroutinesNextSelect

Last updated 8 months ago