מהי שגרת גו?
מהי שגרת גו?

וִידֵאוֹ: מהי שגרת גו?

וִידֵאוֹ: מהי שגרת גו?
וִידֵאוֹ: שגרת טיפוח YOUNG 2024, מאי
Anonim

Goroutines הם פונקציות או שיטות הפועלות במקביל לפונקציות או שיטות אחרות. ניתן להתייחס לגורוטינים כעל חוטים קלים. עלות יצירת א Goroutine הוא זעיר בהשוואה לחוט. מכאן שהוא נפוץ עבור ללכת יישומים שיפעילו אלפי Goroutines במקביל.

כאן, מהו ערוץ בתנועה?

ב ללכת שפה, א עָרוּץ הוא מדיום שדרכו גורוטין מתקשר עם גורוטין אחר ותקשורת זו נטולת נעילה. או במילים אחרות, א עָרוּץ היא טכניקה המאפשרת לתת לגורוטין אחד לשלוח נתונים לגורוטין אחר.

יתר על כן, כמה גורוטיינים יכולים לרוץ בבת אחת? במחשב עם 4 ג'יגה-בייט של זיכרון מותקן, זה מגביל את המספר המרבי של גורוטינים לקצת פחות ממיליון. זה מעשי ליצור מאות אלפי גורוטינים באותו מרחב כתובות.

כתוצאה מכך, איך משתמשים ב-Goroutine?

כדי להפעיל פונקציה זו ב-a גורוטינה , להשתמש ללכת f(s). זה חדש גורוטינה יבוצע במקביל לקורא. אתה יכול גם להתחיל א גורוטינה לשיחת פונקציה אנונימית. שתי קריאות הפונקציות שלנו פועלות באופן אסינכרוני בנפרד גורוטינים עַכשָׁיו.

האם Goroutine יכול להחזיר ערך?

לָרוּץ גורוטינה (אסינכרוני) ואחזר ערך החזרה מתפקוד הן בעצם פעולות סותרות. אבל כשאתה מקצה פונקציה ערך החזרה למשתנה שאתה מצפה לקבל את זה ערך בתוך המשתנה. אז כשאתה עושה את זה x:= go doSomething(arg) אתה אומר: המשך, אל תחכה לפונקציה!

מוּמלָץ: