در جست و جوی خود
24.آموزش GO با مثال(بافر کردن کانال)
به صورت پیش فرض کانال ها بافر نشده هستند، به این معنی که ارسال ها را به وسیله (->chan
) قبول میکنند ،اگر یک دریافت کننده مطابق با آن مثل (chan->
) وجود داشته باشد آماده است تا مقدار های ارسال شده را دریافت کند.کاناهالهای بافر شده تعداد محدودی مقدار را بدون مطابقت دریافت کننده برای این مقادیر قبول میکنند.
package main
import "fmt"
func main() {
اینجا ما از تابع درونی make
برای ساختن یک کانالی که 2 مقدار را در خود بافر میکند داریم.
messages := make(chan string, 2)
چون این کانال بافر شده است, ما میتونیم این مقادیر رو بدون یک دریافت همزمان تطبیقی به کانال ارسال کنیم .
messages <- "buffered"
messages <- "channel"
و در بعد ما میتونیم به صورت معمول این دو مقدار را دریافت کنیم.
fmt.Println(<-messages)
fmt.Println(<-messages)
}
$ go run channel-buffering.go
buffered
channel
<<کانالها----------------------------------------------- هماهنگ سازی کانال >>
مطلبی دیگر از این انتشارات
22.آموزش GO با مثال(Goroutines)
مطلبی دیگر از این انتشارات
8.آموزش GO با مثال(آرایه ها)
مطلبی دیگر از این انتشارات
23.آموزش GO با مثال(کانالها)