ویرگول
ورودثبت نام
Alireza Shamsi
Alireza Shamsiدر جست و جوی خود
Alireza Shamsi
Alireza Shamsi
خواندن ۱ دقیقه·۷ سال پیش

23.آموزش GO با مثال(کانالها)

کانالها لوله هایی هستند که به طور همزمان goroutine ها را به یکدیگر متصل میکنند. شما میتونید یک مقدار به وسیله کانالها از یک goroutine ارسال کنید و مقداررو از طریق یک goroutine دیگر دریافت کنید.

package main import "fmt" func main() {

یک کانال جدید رو به وسیله (make(chan val-typeمیسازند. نوع کانالها به وسیله نوع مقادیری که آنها حمل میکنند تعیین میشود.

messages := make(chan string)

به وسیله نحو ->channelما یک مقدار رو به یک کانال ارسال میکنیم. اینجا ما کلمه "ping" رو به کانال messages که بالا ساخته بودیم ارسال کردیم, از یک goroutineجدید.

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

نحوchannel-> مقداری رو از کانال دریافت میکنه. اینجا ما پیغام "ping" که بالا ارسال کرده بودیم را دریافت میکنیم و آن را در خروجی چاپ میکنیم.

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

اجرای این برنامه

وقتی که ما برنامه "ping" را اجرا میکنیم پیغام با موفقیت از یک goroutineبه دیگری به وسیله کانال ما پاس میدهد.

$ go run channels.go ping

به صورت پیش فرض ارسال ها و دریافت ها مسدودند تا زمانی که ارسال کننده و دریافت کننده آماده باشند. این ویژگی به ما اجازه میدهد که تا پایان برنامه ما برای پیغام "ping" صبر کنیم بدون اینکه از هماهنگ سازی های دیگر استفاده کنیم.

<<(روالهای گو)Goroutines---------------------------------------- بافر کردن کانال>>

golang
۸
۳
Alireza Shamsi
Alireza Shamsi
در جست و جوی خود
گولنگ_پارسی
گولنگ_پارسی
مستندات زبان گولنگ به پارسی(GO)
شاید از این پست‌ها خوشتان بیاید