🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308997

Re: Wektory i mapy bezpieczne wątkowo

#308997
From: godek.maciek
Date: Tue, 24 Jan 2017 14:24
37 lines
3097 bytes
W dniu wtorek, 24 stycznia 2017 15:13:17 UTC+1 użytkownik Borneq napisał:

> > Można użyć muteks/sekcję krytyczną. Do prostych zastosowań powinno wystarczyć
> > (Generalnie w C++ obowiązuje zasada, żeby nie płacić za to, czego się nie używa)
> 
> https://pl.wikibooks.org/wiki/POSIX_Threads/Synchronizacja_mi%C4%99dzy_w%C4%85tkami/Mutexy
> 
> Czy muteksy to mają być obiekty globalne?

To, czy obiekt jest "globalny", czy nie, to kwestia tylko i wyłącznie
organizacji oprogramowania. Na pewno nie ma powodów, żeby muteksy
były globalnymi obiektami.

> Wolałbym by były to pola 
> obiektu ale czy wątek będzie miał dostęp do obiektu?

Jeżeli przekażesz mu referencję, to będzie miał dostęp.
W wątkach posixowych jest tak, że przy tworzeniu wątku
przekazujesz dodatkowy parametr -- wskaźnik -- który zawiera
to, co chcesz, żeby zawierał.

> Procedura wątkowa 
> nie może być obiektowa (co najwyżej statyczna), a może obiekt this 
> podawać jako parametr?

Nie siedzę w C++ na tyle głęboko, żeby stwierdzić, czy to dobra praktyka,
ale na ile rozumiem sprawę, to co nazywasz "procedurą obiektową"
(rozumiem, że chodzi o metodę klasy), to zwykła funkcja, która przyjmuje
implicite dodatkowy parametr "this", toteż wydaje mi się, że sprawę
powinno załatwić odpowiednie rzutowanie (choć podejrzewam, że użytkownikom
C++ takie rozwiązanie może nie podchodzić, i pewnie są jakieś C++-owe
biblioteki, które to wszystko opakowują).

Na przykład takie coś:

pthread_t thread;
pthread_create(&thread, NULL, &MojaKlasa::metodaWKtorejUzywamThis, (void *) adresObiektuMojejKlasy)
Technical Details
Message-ID: <e5c83eff-5493-4b23-b453-1a722d8234ff@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin3!goblin.stu.neva.ru!news.ripco.com!news.glorb.com!r185no1937838ita.0!news-out.google.com!78ni12497itm.0!nntp.google.com!r185no1927759ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <o67hv8$s16$1@node2.news.atman.pl> <27de4961-6dec-47f9-8846-f6b1ba2ac7c9@googlegroups.com> <o67k0q$tqa$1@node2.news.atman.pl> <b26a39d6-d9bf-4703-9776-c5a9d4ccc5b7@googlegroups.com> <o67nds$1i9$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
X-Received: by 10.157.60.7 with SMTP id q7mr10427212otc.141.1485267869214;        Tue, 24 Jan 2017 06:24:29 -0800 (PST)
X-Received: by 10.157.39.202 with SMTP id c68mr1291696otb.8.1485267869174; Tue, 24 Jan 2017 06:24:29 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin3!goblin.stu.neva.ru!news.ripco.com!news.glorb.com!r185no1937838ita.0!news-out.google.com!78ni12497itm.0!nntp.google.com!r185no1927759ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Tue, 24 Jan 2017 06:24:28 -0800 (PST)
In-Reply-To: <o67nds$1i9$1@node2.news.atman.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.95.134; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 213.192.95.134
References: <o67hv8$s16$1@node2.news.atman.pl> <27de4961-6dec-47f9-8846-f6b1ba2ac7c9@googlegroups.com> <o67k0q$tqa$1@node2.news.atman.pl> <b26a39d6-d9bf-4703-9776-c5a9d4ccc5b7@googlegroups.com> <o67nds$1i9$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e5c83eff-5493-4b23-b453-1a722d8234ff@googlegroups.com>
Subject: Re: Wektory i mapy bezpieczne wątkowo
From: godek.maciek@gmail.com
Injection-Date: Tue, 24 Jan 2017 14:24:29 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit