eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingpytanie z mutexów › Re: pytanie z mutexów
  • X-Received: by 10.49.36.199 with SMTP id s7mr379941qej.17.1371910358299; Sat, 22 Jun
    2013 07:12:38 -0700 (PDT)
    X-Received: by 10.49.36.199 with SMTP id s7mr379941qej.17.1371910358299; Sat, 22 Jun
    2013 07:12:38 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!news.glorb.com!j2no51213qak.0!news-out.goog
    le.com!y6ni4002qax.0!nntp.google.com!j2no1209214qak.0!postnews.google.com!glegr
    oupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sat, 22 Jun 2013 07:12:38 -0700 (PDT)
    In-Reply-To: <51c56394$0$28103$c3e8da3$91613603@news.astraweb.com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.61.54.150;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 31.61.54.150
    References: <5...@g...com>
    <51c56394$0$28103$c3e8da3$91613603@news.astraweb.com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <7...@g...com>
    Subject: Re: pytanie z mutexów
    From: firr <p...@g...com>
    Injection-Date: Sat, 22 Jun 2013 14:12:38 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:203806
    [ ukryj 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: