[elektro] Programozás: Thread and mutex.
elight
elight at gmail.hu
Thu Feb 9 11:37:21 CET 2017
Szia,
köszi, sokat segítettél..
A fogalommal nem voltam tisztában.
A wikipédián is nézegettem.
De így már sokkal jobban érthető.
A kezeletlenségnek lehet eredménye
hogy mikor debuggolom hol itt ,
hol ott dob ki. Már rájöttem,
lehetnek holtpontok vagy akár szonda hatás is..
Azzal is változhatnak az időzítések
hogy éppen nézegetem. Szóval jó nagy gubanc van,
és alaposan megzavart, hogy ez nem következetes.
Azért több megoldása is lehetséges,
ahogy nézegetem..
Mivel a kiíratás tíz másodpercenként
elfér egy 16kb-os tömbben,
mos először megpróbálom ,
hogy az INT-ben csak összeállítom a tömböt
és ha kész akkor bebillentem a "kiíratható'
fleget, és majd a főprogram elintézi a megjelenítést.
Ezt a szálkezeléses kírást majd később
próbálom meg, ha már átlátom
és biztosra mentem.
Üdv István
2017-02-09 11:20 keltezéssel, Balázs Bámer írta:
> Szervusz István!
>
> "a szóösszetételben
>
>> az hogy 'mutex'?"
>>
> Kölcsönös kizárás.
>
> "hogy a GPIO INT rutinba közvetlenül
>
>> nem ildomos beírni a 'Text ablakba kiíratás' részt."
>>
> Igen, ez így van. Kell egy szál, ami egy eseményre vár, közben egy közös
> mutexet nyitvatart. Az int rutin megvárja, hogy a mutex szabad legyen
> (tipikusan:
> gpio_int [
> lock(mutex) // ez var, amig nem szabad
> közös változóba írja amit akar
> értesíti a szálat
> unlock(mutex)
> ]
> A szál pedig vár, ha értesítést kap, zárja a mutexet, elmenti az értékét és
> nyitja. Utána van ideje kiírni, majd újra vár:
> while(futhat) [
> értesítésre vár, a végén lock(mutex) // ez a kettő jó, ha oszthatatlan
> művelet. C++ -ban condition_variable
> elmenti az értéket // ez kell gyorsan lefusson, hogy a gpio_int ne
> várjon sokáig
> unlock(mutex)
> kirajzol
> ]
>
> szia: Balázs
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list