Többmagos gépek kihasználása c#-ban hogyan?
Nem nagyon értem a többszálú programozást.Eltudná magyarázni valaki.
----
Ha van nekem 8 magos gépem akkor ugye abba nyolc processzor van?
Ha írok egy programot akkor azon alapból csak egy mag fog dolgozni a többi nem?
A magok és a szálak ezek mit jelentenek nem ugyanazok ugye de akkor mik a szálak és mik a magok?
Hogyan írhatok olyan programot ami mind a nyolc magot ki használja?
Ezekre egyáltalán nincs rálátásom. :(
----
Kioktatna valaki.
Én nem értem ezt.
Válaszolja meg valaki a fenti kérdéseimet pls.
Na, akkor képzelj el egy csapatot, 8 főből áll. Tegyük föl, hogy mindannyian egyforma sebességgel tudnak dolgozni és ugyanazt a munkát tudják végezni. A munka leírását, a feladatot írásban adod nekik, ami leírás azt tartalmazza, hogy egy adott embernek konkrétan mely munkafázisokat kell egymás után, vagy bizonyos szabályok által vezérelve elvégezni. Mindenki egyébként közös szerszámokkal és gépekkel dolgozik.
Ekkor megteheted, hogy összeírsz egy feladatot, majd odaadod az egész csoportnak. Miután a munkahelyi szabályzat rögzíti, hogy egy feladatot ki és mikor hajt végre, végül valaki majd megcsinálja, majd kész az eredmény.
De te ugye tudod, hogy annak nem sok értelme van, hogy egy ember dolgozik, 7 meg nem, ezért kitalálod, hogy ez a csapat egyszerre több feladatot is el tudna látni, egyrészt úgy, hogy mind a 8 ember dolgozzon, másrészt akár úgy is, hogy 1 ember több feladaton is. Ez utóbbit hogyan? Pl. úgy, hogy ha a feladat megköveteli, hogy egy kemencét felfűtsön, akkor amíg a kemence melegszik, addig más feladat részfeladatait meg tudja csinálni. Olyasmi ez, hogy ha mosnod is kell, meg takarítani, akkor a ruhák válogatása és a mosógép beállítása közben nem tudsz ugyan mást csinálni, de utána, amíg a gép mos, addig tudsz, pl. porszívózni.
Na, valami ilyesmi ez a számítógépnél: a processzormagok az előbbi embereknek felelnek meg, a szálak pedig a feladatleírásnak és egy konkrét feladat félbehagyása körülményeinek (vagyis ha félbehagysz egy feladatot, akkor meg kell jegyezned, hogy hol tartottál, hogy később folytatni tudd).
Tehát ha több magod van, akkor érdemes több szálat (feladatot) létrehozni, majd úgy dolgoztatni a magokat.
Itt nem tudjuk elmagyarázni neked úgy, hogy egyből nekiülve többszálú programot írj (a programozás egy önálló szakma, amit évekig kell tanulni), de a lényeg az, amit az elején írtam.
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!