DRY
Bocs, ez python, de épp ezzel játszottam, meg a nyelvnek egyébként sincs itt jelentősége...
Eszembe jutott ama bizonyos Don't Repeat Yourself elv.
Szálkezelést próbálgattam (szálbiztos és nem szálbiztos függvények használata multithread környezetben hogy megy, hogyan tudom bizonyítani, hogy a nem szálbiztos függvény ilyen esetben hibásan működik)
A tesztek indítása valahogy így nézne ki:Itt ugye van néhány ismétlődés, ami elég rondán néz ki.
Lecserélhetem ilyenre:Ez így kicsit rugalmasabb (egy sort kell csak módosítani, ha újabb szálat akarok indítani, netán másik függvényt futtatni az újabb szálban), de nem lett sokkal jobb a helyzet, itt is ismétlődik a kód egy része, de...
Lehet ezt tovább szépíteni? Hiszen előbb el kell indítani valamennyi szálat, csak utána mehet egyenként a join...
Jó, ez most egy nagyon egyszerű példa, de hasonló helyzet talán nagyobb méretekben is előfordulhat. Ilyenkor mi a teendő? Van hova egyszerűsíteni? Vagy ilyenkor jön a vállrándítás, hogy minden nem lehet tökéletes?
■ Eszembe jutott ama bizonyos Don't Repeat Yourself elv.
Szálkezelést próbálgattam (szálbiztos és nem szálbiztos függvények használata multithread környezetben hogy megy, hogyan tudom bizonyítani, hogy a nem szálbiztos függvény ilyen esetben hibásan működik)
A tesztek indítása valahogy így nézne ki:
def main(self):
t1=threading.Thread(target=self.runAThread)
t2=threading.Thread(target=self.runAThread)
t1.start()
t2.start()
t1.join()
t2.join()
Lecserélhetem ilyenre:
def main(self):
threadLista=(threading.Thread(target=self.runAThread),threading.Thread(target=self.runAThread))
for t in threadLista:
t.start()
for t in threadLista:
t.join()
Lehet ezt tovább szépíteni? Hiszen előbb el kell indítani valamennyi szálat, csak utána mehet egyenként a join...
Jó, ez most egy nagyon egyszerű példa, de hasonló helyzet talán nagyobb méretekben is előfordulhat. Ilyenkor mi a teendő? Van hova egyszerűsíteni? Vagy ilyenkor jön a vállrándítás, hogy minden nem lehet tökéletes?
threadLista=(threading.Thread
Köszi...
Ugye azt jól látom, hogy kulturált formában nem lehet megszabadulni a két utolsó for-tól a szálak miatt?
ui: ha pythonozni vágynál, range helyett erősen ajánlott az xrange használata a 2.x verzióban a kisebb erőforrás igény miatt.