ריבוי שרשורים ב-Java
Juli 16, 2023

ריבוי שרשורים ב-Java

By

אובייקט מורכב מנתונים מסוימים יחד עם קבוצה של תתי שגרות המבצעות מניפולציות על הנתונים הללו. (אובייקט הוא מעין „מודול“, או ישות עצמאית המתקשרת עם שאר העולם באמצעות ממשק מוגדר היטב. אובייקט צריך לייצג מושג קוהרנטי כלשהו או אובייקט בעולם האמיתי).

פלטפורמת Java תוכננה מהיסוד לתמיכה בתכנות במקביל, עם תמיכה בסיסית במקביל בשפת התכנות Java ובספריות מחלקות Java.

שתי יחידות הביצוע הבסיסיות בתכנות במקביל ביחס לשפת התכנות Java.

בתכנות במקביל, ישנן שתי יחידות ביצוע בסיסיות: תהליכים וחוטים. בשפת התכנות ג’אווה, תכנות במקביל עוסק בעיקר בשרשורים.

Java מספקת תמיכה מובנית עבור תכנות ריבוי הליכי. זה המקום שבו תוכנית מכילה שניים או יותר חלקים שיכולים לפעול במקביל. כל חלק בתוכנית כזו נקרא שרשור, וכל שרשור מגדיר נתיב נפרד לביצוע.

זוהי צורה מיוחדת של ריבוי משימות. זה דורש פחות תקורה מעיבוד ריבוי משימות.

אני צריך להגדיר מונח נוסף הקשור ל-threads: process: תהליך מורכב משטח הזיכרון שהוקצה על ידי מערכת ההפעלה שיכול להכיל פתילים אחד או יותר. חוט אינו יכול להתקיים בפני עצמו; זה חייב להיות חלק מתהליך. תהליך ממשיך לפעול עד שכל האשכולות שאינם דמונים מסתיימים בביצוע.

זה מאפשר לך לכתוב תוכניות יעילות מאוד שעושות שימוש מקסימלי במעבד, מכיוון שניתן לצמצם את זמן השבתה למינימום.

מחזור חיים של שרשור:

  • חדש: חוט חדש מתחיל את מחזור החיים שלו במצב החדש. זה נשאר במצב זה עד שהתוכנית מתחילה את השרשור. זה מכונה גם חוט נולד.
  • ניתן להרצה: לאחר תחילת שרשור שזה עתה נולד, השרשור הופך לניתן להרצה. שרשור במצב זה נחשב כמבצע את משימתו.
  • ממתין: לפעמים שרשור עובר למצב המתנה בזמן שהשרשור ממתין לשרשור אחר שיבצע משימה. שרשור עובר חזרה למצב שניתן להרצה רק כאשר שרשור אחר מאותת לשרשור הממתין להמשיך בביצוע.
  • המתנה מתוזמנת: שרשור שניתן להרצה יכול להיכנס למצב המתנה מתוזמן לפרק זמן מוגדר. שרשור במצב זה עובר חזרה למצב הניתן להרצה כאשר מרווח הזמן הזה יפוג או כאשר האירוע לו הוא מחכה מתרחש.
  • הסתיים: שרשור הניתן להרצה נכנס למצב שהופסק כאשר הוא משלים את המשימה שלו או מסתיים בדרך אחרת.
Prev Post

מדוע דוגמיות בד חשובות כל…

Next Post

רקמת אסיסי – מאפיינים והיסטוריה…

post-bars

Leave a Comment