Multithreading - Mire jó? Mikor használnád? Milyen buktatói vannak? Milyen eszközökkel lehet megvalósítani?
Ezen kérdések megválaszolásához kicsi ez a kis ablak, ahova írni lehet. Gyanítom, hogy a kérdéseidre való válaszokból 1-1 könyvet meg lehetne tölteni.
A neten számtalan leírás és cikk szól ezekről. Járj utána és ha valami nem világos, akkor kérdezz!
Nagyon zanzásítva, mert ahogy #1 is írja, sokat lehetne róla írni:
Mire jó?
-Alkalmazás válaszkészségének fenntartása
-Teljesítmény növelésre, amennyiben több végrehajtó egység is van a gépedben.
Mikor használnám?
-hosszabb műveletek (például hálózati műveletek, nagyobb számítások) végrehajtását háttér szálon KELL csinálni, különben "befagy" a felhasználói felület. Ez már 10 éve is "ciki" volt, ma meg már egyenesen megengedhetetlen.
-ha a feladat jól párhuzamosítható, illetve érdemes megtenni, akkor egyszerre több szálon végrehajtani, ezáltal hamarabb végez vele a processzor
Milyen buktatói vannak?
-nagyon könnyű rosszul csinálni, főleg ha egy feladatot akarsz párhuzamosan végrehajtani. Eleve nem minden algoritmus párhuzamosítható (=>keresni kell másikat, ami lehet, hogy egy CPU mag által végrehajtva lassabb lesz...), de mindegyiknél fellép a szinkronizáció kérdése, illetve a deadlock veszélye. Előbbi alattomos hibákat tud okozni (például minden századik lefutás esetén rossz), utóbbi pedig a szoftver lefagyását okozza.
Milyen eszközökkel lehet megvalósítani?
Ez abszolút platform- és nyelvfüggő. Általánosságban elmondható, hogy mindegyik mai környezetben elérhető egy ThreadPool jellegű megoldás (több szál fut, te ezek közül kérhetsz egyet, hogy végrehajtson egy feladatot), ezek használata szokott lenni a legkényelmesebb.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!