Odpovídáte na názor ke článku C++20: kde bydlí korutiny.
Tak jistě mohlo se to udělat pomocí stackful korutin. Znamená alokace zásobníku po korutinu (nebo gorutinu?) Je to určité strategické rozhodnutí. Problém je, že nikdy dopředu nevíš, jak velký zásobník chceš alokovat. Takže nastřelíš nějakou hodnotu a doufáš, že to bude stačit.
Netuším, jak to go ma realizované. A netroufnu si říct, že to je lepší. C++ šlo cestou stackless, kdy nejsi povinný alokovat zásobník pro korutinu. Pokud tvá korutina dále volá normální funkce, pak se normálně používá zásobník vlákna, ve kterém zrovna běží. Samotná korutina zabírá jen to minimum co potřebuje k uložení stavu.
Některé embedded systémy navíc mají pouze jeden zásobník, alternativní zásobníky nelze používat, nelze jen tak změnit registr SP. Stackless korutiny v tomhle systému budou bez problému fungovat, stackful tam nezrealizuješ. To asi bylo hlavní kriterum pro rozhodování, co se do normy dostane. Co se týče stackful korutin z hlediska podpory OS, tak nikdo programátorovi nebrání použít makecontext/ConvertThreadToFiber dostupný už na úrovni C.
Javascript například má stackless korutiny.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 57 601×
Přečteno 27 720×
Přečteno 26 403×
Přečteno 24 367×
Přečteno 22 864×