Golang | Channels برمجة القنوات
آخر
الصفحة
Exception10
  • المشاركات: 658
    نقاط التميز: 508
عضو نشط
Exception10
عضو نشط
المشاركات: 658
نقاط التميز: 508
معدل المشاركات يوميا: 0.3
الأيام منذ الإنضمام: 2424
  • 16:36 - 2024/03/17

السلام عليكم 

قنوات (Channels) في Golang هي وسيلة للتواصل وتبادل البيانات بين مختلف الجوروتينات (Goroutines). تستخدم القنوات لإرسال القيم من جوروتين إلى آخر بطريقة آمنة متزامنة. الفكرة الأساسية وراء القنوات هي توفير آلية للتحكم في تدفق البيانات بين الجوروتينات بحيث يتم تجنب المشاكل المتعلقة بالتنازلات (Race Conditions) وتجاوز الحجز (Deadlocks).


لإنشاء قناة في Golang، يمكن استخدام الكلمة المفتاحية make مع الدالة chan وتحديد نوع البيانات التي ستنقلها القناة. على سبيل المثال:

package main

import "fmt"

func main() {
    // إنشاء قناة تحمل قيم من نوع int
    ch := make(chan int)

    // إرسال قيمة عبر القناة
    go func() {
        ch <- 42 // إرسال القيمة 42 عبر القناة
    }()

    // استقبال القيمة المرسلة عبر القناة
    value := <-ch
    fmt.Println(value) // الطباعة: 42
}

في هذا المثال، تم إنشاء قناة تحمل قيم من نوع int. ثم تم إرسال قيمة 42 عبر القناة من جوروتين مستقل، وأخيرًا تم استقبال هذه القيمة في الجوروتين الرئيسي.

يمكن استخدام القنوات لتحقيق التواصل بين الجوروتينات في العديد من السيناريوهات، مثل التزامن بين عمليات القراءة والكتابة على البيانات أو تنظيم العمليات المتزامنة بين مختلف الجوروتينات.

تحياتي

 Golang | Channels برمجة القنوات
بداية
الصفحة