Az iterátorok szálai biztonságosak?
Pontszám: 4,3/5 ( 51 szavazat )Egyik iterátor sem szálbiztos . Ha az alapul szolgáló gyűjtemény iteráció közben módosul, egy ConcurrentModificationException jelenik meg. Még a szinkronizált gyűjtemények iterátorai sem szálbiztosak – manuálisan kell szinkronizálnia. Az egyik kivétel a CopyOnWriteArrayList, amely az iteráció során pillanatképet tárol.
Biztonságosak a C++ iterátorok szálai?
Nem, egyik megközelítés sem biztonságos, ha elkezd írni az adatstruktúrába. ... Több szál is bővítheti a tárolót és új elemeket fűzhet egyidejűleg. A tároló bővítése nem érvényteleníti a meglévő iterátorokat vagy indexeket. *
Biztonságos az iterátor következő szála?
Elsőre úgy tűnhet, hogy a hasNext() és next() hívása nem atomi, mivel egy másik szál is meghívhatja a hasNext() függvényt! ... A Parallel Iterator azonban teljesen szálbiztos!
Biztonságos a többszálú szál?
Szálbiztos: A megvalósítás garantáltan versenyfeltételektől mentes, ha egyszerre több szál is eléri . Feltételesen biztonságos: A különböző szálak egyidejűleg különböző objektumokhoz férhetnek hozzá, és a megosztott adatokhoz való hozzáférés védve van a versenyfeltételektől.
Mi tekinthető cérnabiztosnak?
"Egy osztály szálbiztos , ha megfelelően működik, ha több szálról éri el , függetlenül a szálak végrehajtásának ütemezésétől vagy összeillesztésétől a futási környezet által, és nincs további szinkronizálás vagy egyéb koordináció a hívó kód részéről. "
Minden, amit a cérnabiztonságról tudnia kell 2 perc alatt vagy kevesebben
Biztonságos a HashMap szál?
A HashMap nincs szinkronizálva. Nem szálbiztos , és nem osztható meg sok szál között megfelelő szinkronizálási kód nélkül, míg a Hashtable szinkronizált.
Hogyan érhető el egy szál biztonsága?
Szinkronizált társaikkal ellentétben a párhuzamos gyűjtemények szálbiztonságot érnek el azáltal, hogy adataikat szegmensekre osztják fel . Egy ConcurrentHashMap-ben például több szál zárolást szerezhet a különböző térképszegmenseken, így több szál is hozzáférhet a térképhez egyidejűleg.
Miért nem szálbiztos az ArrayList?
Az ArrayList nem szinkronizált, mert ha az ArrayList szinkronizálva van, akkor egyszerre csak egy szál dolgozhat az ArrayList-en, és a többi szál nem hajthat végre más műveleteket az ArrayList-en, amíg az első szál fel nem oldja a zárolást. Ez többletköltséget okoz és csökkenti a teljesítményt.
Az ArrayList szálbiztonságos?
Az ArrayList viszont nincs szinkronizálva, ezért nem biztonságos a szál . Ezt a különbséget szem előtt tartva, a szinkronizálás használata teljesítménybeli sikert jelent. Tehát ha nincs szüksége szálbiztos gyűjteményre, használja az ArrayList-et.
A primitívek cérnabiztosak?
Alapvetően: A Java primitívek nem szálbiztosak !
Biztonságos a linkelt lista?
4 válasz. A LinkedList nem szálbiztos . A zárolást magadnak kell elvégezned. Ha megfelel az Ön igényeinek, próbálja ki helyette a ConcurrentLinkedQueue vagy LinkedBlockingDeque programot, ezek szálbiztosak, de kissé eltérnek a LinkedListtől.
A ConcurrentHashMap szál biztonságos?
A ConcurrentHashMap főbb pontjai: A ConcurrentHashMap osztály szálbiztos, azaz több szál is működhet egyetlen objektumon minden komplikáció nélkül. ... A ConcurrentHashMap alapértelmezett párhuzamossági szintje 16.
A StringBuilder szálbiztonságos?
A StringBuilder kompatibilis a StringBuffer API-val, de nem garantálja a szinkronizálást. Mivel nem szálbiztos megvalósítás , gyorsabb, és olyan helyeken ajánlott használni, ahol nincs szükség szálbiztonságra.
A Push_back vektor cérnabiztos?
2 válasz. Nem szálbiztos, mert egy vektor összefüggő, és ha nagyobb lesz, akkor előfordulhat, hogy egy vektor tartalmát egy másik helyre kell mozgatnia a memóriában.
A C++ STL szálbiztonságos?
Az STL SGI megvalósítása csak abban az értelemben szálbiztos, hogy a különböző tárolókhoz való egyidejű hozzáférés biztonságos, és a megosztott tárolókhoz való egyidejű olvasási hozzáférés biztonságos. ... Ez az egyetlen módja annak, hogy biztosítsa a teljes teljesítményt az egyidejű hozzáférést nem igénylő tárolók számára.
Az std :: cérnabiztosnak tűnik?
Nem, a C++ specifikáció nem garantálja a menetbiztonságot az STL-konténereken végzett műveletek specifikációjában. Ha fontos a menetbiztonság, gondoskodjon saját reteszelésről. Ennek ellenére a különböző megvalósítások különböző garanciákat kínálnak.
Melyik a jobb LinkedList vagy ArrayList?
Az ArrayList belsőleg dinamikus tömböt használ elemeinek tárolására. A LinkedList a Duplán linkelt listát használja elemei tárolására. ... Az ArrayList gyorsabb az adatok tárolásában és elérésében. A LinkedList gyorsabban kezeli az adatokat.
Mi történik, ha kétszer indítunk egy szálat?
Egy szál elindítása után soha nem indítható újra . ... Ha így tesz, a rendszer egy IllegalThreadStateException kivételt dob fel. Ebben az esetben a szál egyszer fut, de másodszor kivételt dob.
Melyik lista szálbiztos?
A Vector és a Hashtable az egyetlen két örökölt gyűjtemény, amelyek szálbiztosak. Szinkronizált gyűjtemények a Collection segédprogram osztályának synchronizedXXX(collection) gyári metódusaival hozhatók létre. Cérnabiztosak, de gyenge a teljesítményük.
Hogyan lehet egy ArrayList szálat biztonságossá tenni?
Az ArrayList szálbiztos változata, amelyben az összes mutációs művelet (pl. add, set, remove...) az alapul szolgáló tömb külön másolatának létrehozásával valósul meg. A szálbiztonságot úgy éri el, hogy külön másolatot hoz létre a Listából, amely másképpen működik, mint a vektoros vagy más gyűjtemények a szálbiztonság biztosítására.
Melyik a jobb ArrayList vagy vektor?
Az arraylist jobb választás , ha a program szálbiztos. A vektor és a tömblista több elem hozzáadásával helyet igényel. vektor minden alkalommal megduplázza a tömb méretét, míg az arraylist minden alkalommal 50%-kal nő. ... jó szokás a tömblistát nagyobb kezdeti kapacitással összeállítani.
Biztonságos a vektorszál?
A Vector egy szálbiztos gyűjtemény – alapértelmezés szerint minden metódusa szinkronizálva van. Ezért javasolt az ArrayList használata helyette – ez nem szálbiztos, ami jobb teljesítményt eredményez az egyszálas alkalmazásoknál.
Az osztályváltozók szálai biztonságosak?
A JVM-ben minden szál megkapja a saját Java veremét. ... A JVM szerkezetét tekintve a helyi változók, metódusparaméterek és visszatérési értékek eredendően "szálbiztosak". De a példányváltozók és az osztályváltozók csak akkor lesznek szálbiztosak, ha megfelelően tervezi meg az osztályt .
Biztonságos a statikus metódus menete?
Köztudott, hogy a statikus metódusok, amelyek paraméterei az Immutable Objects, szálbiztosak , a Mutable Objectek pedig nem.
Biztonságos a statikus szál?
Nem, eleve nem szálbiztosak (kivéve, ha nem hívnak kódot, de ezt a példánymetódusokkal is megkapod). A szálbiztonság magában foglalja a globálisan elérhető erőforrások szinkronizálását is. Egy statikus metódus nem férhet hozzá ugyanannak az osztálynak egyetlen statikus tagjához sem; de még mindig lehetnek menetbiztonsági problémák.