( asch | 2020. 11. 16., h – 16:26 )

Abban a fajta multitaskban amit én csináltam, ott az van, hogy minden stacken ezek vannak:

* Saját maga, tehát annak a szálnak a main loopja, és minden amit ő hív

+ Ezek közül _valamelyik_:

* Saját regisztereinek mentése: kb 36 bájt + még az az interrupt, ami a context switch-cset csinálja

* Interruptok (level1+level2)

Ki lehet számolni/meg lehet mérni, hogy mi mennyit eszik. Ha elfér, akkor nincs veszélye. Ha nem mindig fér el, akkor valóban veszélyes, de úgy is fogalmazhatunk, hogy nem működik.

Egyébként threadeket csinálni csak akkor kell, ha olyan algoritmusod van, amit nem tudsz úgy megírni, hogy félbeszakítható legyen, és ezekből _többet kell párhuzamosan_ futtatni. (Valójában minden algoritmus átírható félbeszakíthatóra, csak van amit nehéz. Én például olyat csináltam, hogy egy template generál HTML kódot. Egy ilyen template közepérő macerás úgy kiugrani, hogy ugyanott tudd folytatni a végrehajtást, ezért csináltam hozzá multithreadet.)   Ha az algoritmusod ismétlődő taszkokra bontható, akkor jobban jársz, ha ezeket a taszkokatt hívogatod sorban és kész. Ha _csak egy_ meg nem szakítható algoritmusod van, akkor azt teheted a főprogramba, és minden más futhat interruptban. Ez még mindig elég egyszerű, nem valódi multitaszk, mert csak egy stacket kell kezelni.