Kurzusok
/
Go
Go
/
Feladatok
/
Párhuzamos betűgyakoriság
Párhuzamos betűgyakoriság

Párhuzamos betűgyakoriság

Közepes

Utasítások

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.

Egyidejűség és párhuzamosság

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.

Források az egyidejűséghez

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.

Tesztelés

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.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Go Exercism

Készen állsz elkezdeni a(z) Párhuzamos betűgyakoriság feladatot?

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.

Mélyelemzés: Párhuzamos betűgyakoriság!

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.