To by podle mě takto přímo nešlo udělat, můžeš sice odkazovat na jiné batch programy, ale ty se spouští jako samostatné procesy, nikoliv jako vlákna Takže pokud chceš "vícevláknové zpracování" programů v batchi, tak musíš vytvořit nový proces
@@GrizlikD Díky za odpověď. Takže těch pět "částí" programu se rozdělí mezi ty dvě vlákna procesoru způsobem např. že jedno vlákno bude počítat dvě části a to druhé zbývající tři části? Nebo se to bude střídat ještě nějak složitěji?
@@Mikografika Jedno jádro procesoru může vždy v jednu chvíli pracovat pouze na jedné úloze Operační systém přiřazuje aktuálně běžící vlákna mezi jádra procesoru a strašně rychle je střídá, takže procesor by například 1 milisekundu zpracovával jedno vlákno, další milisekundu další vlákno, atd. Jelikož je ale v tomto případě méně jader procesoru než vláken programu, tak z pohledu rychlosti by tam nebyl žádný rozdíl oproti dvěma vláknům, když ale máš třeba 6 jader procesoru, tak tam 5 jader může zpracovávat těch 5 vláken současně a proto to bude výrazně rychlejší
Mam este jedno jednoduche vylepsenie. Keby si nerosekal rozsah na 4 casti pre kazde vlakno, ale namiesto toho poslal kazdemu vlaknu na spracovanie kazde 4-te cislo z rozsahu tak by vsetky vlakna bezali zatazene rovnako az do konca.
Ano, skvělá úvaha, takto by program mohl fungovat ještě efektivněji 👍👍👍 Konkrétně tedy když jsem dělal knihovnu pro práci s prvočísly, tak tam jsem umožnil nastavit rozsah, kolik čísel se má vláknu poslat (defaultně jsem používal 500 čísel), aby to rozdělování výpočtu nespotřebovalo více výkonu, než ten samotný výpočet 😁 Ale i tvoje verze by pravděpodobně mohla být efektivnější, než prostě napevno určit celý rozsah pro vlákno jako čtvrtinu počtu čísel. Navíc bys také takto mohl program rozjet i na libovolném počtu vláken. Ten můj program z videa byl přesně určený pro 4 vlákna, takže kdyby měl někdo v procesoru ještě více jader, než 4, tak ostatní jádra by zůstaly nevyužité
Protože je to prostě video o programování a na to se podívá jenom někdo, kdo tomu aspoň trochu rozumí, takže všechny programovací videa mají tak polovinu shlédnutí, než je průměr
Ono na toto v C++ existujú knižnice, ktoré sa starajú o súbežnosť a synchronizáciu v multi-threaded programoch. Šikovná knižnica s názvom Parallel Patterns Library ponúka fajnovosti, ako sú napr. algoritmy pre paralelné cykly. Výpočet prvočísel zabral programu z videa 5.4549 sec, zatiaľ čo jeden _concurrency::parallel_for_ algoritmus vypočítal to isté za 0.0220 sec
Pravda, o tom jsem se taky dočetl, dokonce i když jsem zkoušel, jak by ten kód vygeneroval ChatGPT, tak by taky nepoužil V tomto videu jsem ale spíš chtěl ukázat tu problematiku vícevláknového zpracování, než že by to byl tutoriál na vícevláknovou aplikace, takže jsem nakonec zůstal u té knihovny :D
Zdá se mi to a nebo to začne vždy o 2 minuty později? V 19:30 teprve odpočítávání dvou minut. Nemělo by ale odpočítávání začít v 19:28? :D A kdy si konečně Gůůgl opraví ten speedmetr na webu, pořád - už 3 roky ukazuje špatné jednotky :D
Já jsem se taky divil, proč v ten daný čas začíná odpočet a ne to video, ale ten odpočet se bere jako součást toho videa, něco jako v kině jsou vždy před filmem reklamy, taky je oficiální čas začátku filmu akorát čas začátku těch reklam a film ve skutečnosti začíná až později Podle YouTubu je ten odpočet pro "vytvoření zvědavosti u diváka" a je to povinná součást premiéry, takže bych ho nemohl vypnout, ani kdybych chtěl xD