בית התפתחות מה אטומי בג'אווה? - הגדרה מטכנולוגיה

מה אטומי בג'אווה? - הגדרה מטכנולוגיה

תוכן עניינים:

Anonim

הגדרה - מה המשמעות של אטומי?

Atomic הוא ערכת כלים של שיעורי חבילה java.util.concurrent.atomic משתנים, המסייעים בכתיבת אלגוריתמים של נעילה ונטולי המתנה בשפת ה- Java. אלגוריתם הדורש שרשור חלקי בלבד לצורך התקדמות מתמדת הוא ללא נעילה. באלגוריתם ללא המתנה, כל האשכולות מתקדמים ברציפות, אפילו במקרים של כישלון או עיכוב של פתיל. אלגוריתמים נעולים וניתנים להמתנה ידועים גם כאלגוריתמים לא חסימתיים. אלגוריתמים לא חסימתיים משמשים לתזמון תהליכים וחוטים ברמת מערכת ההפעלה וברמה המכונה הווירטואלית של Java.

Techopedia מסביר את Atomic

לכל שיעורי החבילה java.util.concurrent.atomic יש את הקידומת "האטומית" בשמם. ישנם סוגים שונים של משתנים אטומיים הזמינים בחבילה java.util.concurrent.atomic, כולל:

  • AtomicBoolean
  • AtomicInteger
  • AtomicIntegerArray
  • AtomicIntegerFieldUpdater
  • AtomicLong
  • AtomicLongArray
  • AtomicLongFieldUpdater
  • AtomicReference
בשפת ה- Java, הסנכרון מתאם את הגישה לשדות פתיל משותפים ומאפשר רק לחוטים המחזיקים מנעולים גישה ושינוי משתנים המוגנים על ידי המנעול. שינויים בחוט זה גלויים לחוט שאחריו, אך רק לאחר שהשרשור משחרר את המנעול.

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


המטרה העיקרית מאחורי בניית מחלקות אטומיות היא הטמעת מבני נתונים לא חסימתיים ושיעורי התשתית הקשורים להם. שיעורי אטום אינם משמשים כמחליפים לשיעורי java.lang.Ieger מספרים קשורים. מרבית שיעורי החבילה הנוכחיים של java.util.Conline משתמשים במשתנים אטומיים במקום בסנכרון, באופן ישיר או עקיף. משתנים אטומיים משמשים גם להשגת תפוקה גבוהה יותר, שמשמעותה ביצועי שרת יישומים גבוהים יותר.

הגדרה זו נכתבה בהקשר של ג'אווה
מה אטומי בג'אווה? - הגדרה מטכנולוגיה