Pojam korutina (coroutines) se u račnuarstvu pominje još 60-ih godina kao generalizacija podrutina (subroutines), tj. funkcija, koje imaju stanje i čije izvršavanje može da se prekine i nastavi kasnije. Od tada do danas su aktuelna tema - Donald Knuth ih obrađuje u svojoj knjizi “The Art of Computer Programming, Vol. 1 Fundamental Algorithms”, standardni su deo jezika Python i Kotlin a postoje i mnoga bibliotečka rešenja u većini programskih jezika.
C++20 standard uvodi korutine kao sastavni deo jezika uvođenjem novih ključnih reči za rad sa korutinama (co_await, co_yield, co_return) i novim mehanizmom za kontrolu toka programa.
Ova nova funkcionalnost nam omogućava da jednostavnije pišemo asinhroni kod, bez korišćenja alata standardne biblioteke kao što su std::thread ili std::future i std::promise. Uz korišćenje korutina, asinhroni kod postaje praktično identičan sinhronom kodu. Zbog načina kako je C++20 definisao korutine, osim za pisanje asinhronog koda, korutine možemo koristiti za implementaciju generatora, state mašina i drugih uslužnih alata.
Petar Trifunovic će zajedno sa svojim kolegama prezentovati kratak pregled onoga što je novi standard doneo u samom jeziku i u standardnoj biblioteci, objasniti koje su osnovne gradivne jedinice asinhronih programa koje koriste korutine i sve to u kontekstu jedne asinhrone aplikacije.
Pristup putem telefona: +381114250145 (PIN: 602 714 419 5866#) Lista telefonskih brojeva: https://cppserbia.com/meet-numbers
Link ka Slack workspace-u C++ user grupe možete naći ovde.
Sa velikim zadovoljstvom vas obaveštavam da je ovaj događaj sponzorisalo preduzeće Inceptive. Hvala vam na želji da učestvujete u razvoju lokalne C++ zajednice!
🕕 Date & Time | 30. novembar (sreda), u 18h |
📍 Location | ICT Hub |
🏢 Address | Kralja Milana 10 |
💻 Online | https://cppserbia.com/meet |
Vidimo se!