eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingpytanie z mutexówRe: pytanie z mutexów
  • Data: 2013-06-22 16:12:38
    Temat: Re: pytanie z mutexów
    Od: firr <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu sobota, 22 czerwca 2013 10:42:57 UTC+2 użytkownik Bronek Kozicki napisał:
    > On 20/06/2013 11:35, firr kenobi wrote:
    >
    > > czy najbardziej podstawowy z tych elementali
    >
    > > (jak mniemam mutex)
    >
    >
    >
    > Najbardziej podstawowy z elementów synchronizacji jest nie mutex, ale
    >
    > atomowa flaga (test-and-set, http://en.wikipedia.org/wiki/Test-and-set ).
    >
    >
    nie jestem przekonany czy taka atomowa
    operacja jest wogole potrzebna

    dla przykladu

    int lock = 0;

    bool acquire()
    {
    if(!lock) { lock++; return true; }
    else return false;
    }

    void thread1
    {
    if(acquire()) { ........... }
    }

    void thread2
    {
    if(acquire()) { ........... }
    }

    w takim kodzie gdyby w obu watkach
    " if(!lock) lock++; " wystapilo co do cyklu rownoczenie (o ile cos takiego jest
    mozliwe )
    to mozna powiedziac ze oba watki przeszlyby
    przez locka - ale gdyby nie robic lock+= tylko
    przypisanie lock=thread_id to albo bylby jakis
    wybuch kosci pamieci albo lock zapisalby sie jedna z wartosci wtedy mozna to
    sprawdzic w kazdym acquire, jeden wycofac a drugi przepuscic
    i chyba by działało

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: