Párhuzamos számítással számold meg a betűk gyakoriságát szövegekben.
A párhuzamosság lényege, hogy olyan dolgokat végzünk párhuzamosan, amelyeket sorosan is el lehet végezni. Gyakori példa erre a betűk gyakoriságának megszámolása. Használj párhuzamosságot, hogy kiszámítsd az egyes betűk összesített gyakoriságát a szövegek listájában.
A Go az egyidejűséget a „goroutine-ok” segítségével támogatja, amelyeket a go kulcsszóval indítasz el.
Ez egy egyszerű, könnyűsúlyú és elegáns módja az egyidejűség támogatásának, és a nyelv egyik legnagyobb erőssége.
Feltűnhet, hogy bár ezt a feladatot Parallel letter frequencynek hívják, a „Parallel” kifejezéssel nem találkozol túl gyakran a Go-ban. A gopherek inkább a Concurrent kifejezést használják több független goroutine kezelésének leírására (más nyelvekben ezek „processzek” vagy „szálak”). Bár ezt a két kifejezést gyakran felváltva használják, a gopherek szeretnek technikailag pontosak lenni, és a goroutine-ok látszólag egyidejű végrehajtásáról beszélve a „concurrent” szót használják.
Bár tervezhetjük úgy a programjainkat, hogy párhuzamosan fussanak, sőt időnként úgy is tűnhet, hogy párhuzamosan futnak, a kódunk végrehajtási környezetének pontos ismerete nélkül csak azt garantálhatjuk, hogy a folyamatok egyidejűleg futnak. Más szóval lehet, hogy egymás után, a megkülönböztethetőnél gyorsabban hajtódnak végre, de nem szigorúan egyszerre.
Ha többet szeretnél megtudni, nézd meg a Go Blog bejegyzését: Concurrency is not parallelism.
Ha most ismerkedsz a Go egyidejűségi lehetőségeivel, itt van néhány forrás a kezdéshez. Javasoljuk, hogy nézd át ezeket, mielőtt belevágsz a feladatba:
Ha igazán mélyre szeretnél ásni, próbáld ki a Concurrency in Go című könyvet @kat-co tollából.
Ennél a feladatnál az egységtesztek nem tudják megállapítani, hogy jó egyidejű megoldást írtál-e.
Ehelyett a legjobb, ha helyben oldod meg a feladatot, és a go test -bench . paranccsal futtatod a benchmarkokat.
Egy jó megoldásnál azt kell látnod, hogy az egyidejű változat kevesebb nanoszekundumot mutat műveletenként (ns/op), mint a szekvenciális változat.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.
A konkurencia és a párhuzamosság közötti különbségeket járjuk körbe, olyan nyelvek eltérő megközelítéseit szemügyre véve, mint a JavaScript, a Go, az Elixir és a Rust.