האם חוט וקטור בטוח ב-Java?
האם חוט וקטור בטוח ב-Java?

וִידֵאוֹ: האם חוט וקטור בטוח ב-Java?

וִידֵאוֹ: האם חוט וקטור בטוח ב-Java?
וִידֵאוֹ: Vectors in Java: The 1 Situation You Might Want To Use Them 2024, דֵצֶמבֶּר
Anonim

וֶקטוֹר כל השיטות מסונכרנות. אז משתמש בו מרובה חוטים הוא " בטוח ". אתה צריך לסנכרן רק אם אתה צריך תהליך קריאה-הערכת-כתיבה כדי להיות אטומי. סנכרון השיטות שלך לא בהכרח הופך את הקוד שלך פְּתִיל - בטוח עבור אותם תרחישים.

אם נשמור על זה, האם שרשור רשימה בטוח ב-Java?

למעשה, כל מחלקות האיסוף (למעט וקטור ו-Hashtable) ב- java . חבילת util אינם פְּתִיל - בטוח . בגלל זה החדש אוספים ( רשימה , Set, Map, וכו') לא מספקים בקרת מקבילות כלל כדי לספק ביצועים מקסימליים ביישומים עם חוט יחיד.

באופן דומה, איזה אוסף בטוח ב-Java? א פְּתִיל - בטוח מחלקה היא מחלקה שמבטיחה את המצב הפנימי של המחלקה כמו גם שהערכים המוחזרים משיטות, נכונים כשהם מופעלים במקביל ממספר חוטים . ה אוסף כיתות שכן פְּתִיל - בטוח בג'אווה הם Stack, Vector, Properties, Hashtable וכו'.

אם ניקח זאת בחשבון, האם פתיל Java HashSet בטוח?

HashSet לא פתיל בטוח HashSet ב Java לא בטוח חוט מכיוון שהוא אינו מסונכרן כברירת מחדל. אם אתה משתמש HashSet בסביבה מרובת הליכי גישה שבה ניגש אליו מרובים חוטים במקביל וגם מבני שונה אפילו על ידי אחד פְּתִיל אז זה חייב להיות מסונכרן חיצונית.

מה בטוח ArrayList או וקטור?

וֶקטוֹר איטי כמו שהוא בטוח חוט . בהשוואה רשימת מערך הוא מהיר מכיוון שהוא לא מסונכרן. כך פנימה רשימת מערך שתיים או יותר חוטים יכול לגשת לקוד בו-זמנית, תוך כדי וֶקטוֹר מוגבל לאחד פְּתִיל בכל פעם. א וֶקטוֹר ברירת המחדל היא הכפלת גודל המערך שלו.

מוּמלָץ: