9. praktikum - Lõimed

Allikas: Lambda
Süsteemprogrammeerimine keeles C

Praktikumid

Laborid

Selle praktikumi eesmärk on läbi katsetada lõime loomine ning mutexi kasutamine jagatud andmete vahendamiseks. Näiteprogrammide kopeerimisel kirjuta nad käsitsi ümber, sest see mõjutab aju nii, et tehtu jääb paremini meelde.

Ülesanne

Kirjuta programm, mis loob talle argumendiks antud arvu lõimi, mis kõik liidavad tsüklis ühte globaalsesse muutujasse. Tähelda, et summad ei klapi ja et arvutus on üsna kiire.

Kaitse globaalmuutuja mutexiga. Tähelda et lukustamisel arvutamine aeglustub.

Kirjuta teine programm, mis jookseb kahes erinevas lõimes. Püüa kahe mutexi valesti kasutamisel tekitada deadlock.


Vihjed

  • Selleks et lõimed lingitud saaksid on vaja kompileerimisel teha midagi sarnast (teisisõnu lisada -pthread võti):
 gcc example.c -pthread -o example