English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang تعليمات أساسية

Golang جملة التحكم

Golang دوال & طرق

Golang بنية

Golang مقاطع & مصفوفات

Golang سلاسل (String)

Golang إشارات

Golang واجهات

Golang تنافسية

Golang استثناء (Error)

Golang غير ذلك

المتابعات المتعددة بلغة Go

Goroutine هي دالة أو طريقة يمكن تنفيذها بشكل مستقل وعرضي مع أيgoroutine أخرى موجودة في البرنامج. بمعنى آخر، كل نشاط يتم تنفيذه في نفس الوقت في لغة Go يسمى Goroutines. في لغة Go، يمكنك إنشاء العديد من goroutines في برنامج واحد. يمكنك ببساطة إنشاء goroutine باستخدام كلمة المفتاح go كحرف مقدم لتحويل دالة أو طريقة، كما هو موضح في النحو التالي:

func name(){
// جملة
}
//استخدام كلمة المفتاح go لإنشاء goroutine
go name()

الآن، من خلال النموذج نناقش كيفية إنشاء واستخدام العديد من goroutines:

package main
import (
    "fmt"
    "time"
)
//goroutine 1
func Aname() {
    arr1 := [4]string{"Rohit", "Suman", "Aman", "Ria"}
    for t1 := 0; t1 <= 3; t1++ {
        time.Sleep(150 * time.Millisecond)
        fmt.Printf("%s\n", arr1[t1])
    }
}
// غوروتين 2
func Aid() {
    arr2 := [4]int{300, 301, 302, 303}
    for t2 := 0; t2 <= 3; t2++ {
        time.Sleep(500 * time.Millisecond)
        fmt.Printf("%d\n", arr2[t2])
    }
}
func main() {
    fmt.Println("!...غوروتين Go-routine تبدأ...!")
    // استدعاء غوروتين 1
    go Aname()
    // استدعاء غوروتين 2
    go Aid()
    time.Sleep(3500 * time.Millisecond)
    fmt.Println("\n!...غوروتين Go-routine تنتهي...!")
}

الإخراج:

!...غوروتين Go-routine تبدأ...!
Rohit
Suman
Aman
300
Ria
301
302
303
!...غوروتين Go-routine تنتهي...!

إنشاء:في المثال السابق، بالإضافة إلى الغوروتين الرئيسية، لدينا اثنين من الغوروتين، وهيAnameوAid. هنا،Anameطباعة اسم المؤلف،Aidطباعة id للمؤلف.

العمل:في هذا السياق، لدينا اثنين من الغوروتين، وهيAnameوAid،وغوروتين رئيسية. عندما نبدأ تشغيل البرنامج لأول مرة، تقوم الغوروتين الرئيسية بتقسيم نفسها وت��ع "!...غوروتين Go-routine تبدأ...!". هنا، الغوروتين الرئيسية مثل الغوروتين الأب، والغوروتين الأخرى هي أطفالها، لذا يجب تشغيل الغوروتين الرئيسية قبل تشغيل الغوروتين الأخرى، وإذا انتهت الغوروتين الرئيسية، فإن الغوروتين الأخرى تنتهي أيضًا. لذلك، بعد الغوروتين الرئيسية،AnameوAid goroutine يبدأ العمل بشكل متزامن. Aname goroutine تبدأ العمل من 150ms، بينما Aid من 500ms.