Article View: pl.comp.os.linux.programowanie
Article #60253Re: semafory i procesy w c
From: Uzytkownik
Date: Sat, 29 Oct 2005 18:18
Date: Sat, 29 Oct 2005 18:18
51 lines
2491 bytes
2491 bytes
On Thu, 27 Oct 2005 10:15:51 +0200, kreska wrote:
> Czy ktos moglby mi (dosc szybko) pomoc w napisaniu programu, w ktorym
> tworzymy trzy procesy i kazdy z nich ma wypisywac swoje id, za pomoca
> smeaforow mam zsynchronizowac je tak, aby wpisywaly id po kolei
> czyli np 123123123123.
> Program ma być napisany w c ale wystarczy mi tylko ogolny zarys
> programu.(chociaż gotowym kodem nie pogardze:))
> Doszlam tylko do tego, ze inicjuje semafor wartoscia 0, i kazdy z procesow
> czega az semafor bedzie mial "jego" wartosc, czyli pierwszy reaguje na
> wartosc 1, drugi na 2 itp, ale w ten sposob moge wypisac id kazdego procesu
> raz, nie wiem jak to zapetlic.
>
> Pomozcie prosze!
1. Czy to zadanie "Szkolne"?
2. Nie wiem czemu ma to służyć(Praca domowa, czy nauka wątków):
-) Nauka watków: Z tego co wiem lepiej stosować mutex(jeśli czegoś nie
pomyliłem się). Tutaj mamy coś "innego", ale to chyba raczej rzadki
przypadek.
-) Szkoła: Po co?
-) Inne: Patrz Nauka
3. Watek(przykład w glib. Nie wiem co masz dokładnie na myśli mówiąc
id):
static gint8 id = 0;
static gint8 ile = 0;
static GMutex *mutex = NULL;
void watek(gpointer nr) {
while(if != GPOINTER_TO_INT(nr)) g_thread_yield();
g_mutex_lock(mutex);
g_printf("%d", GPOINTER_TO_INT(g_thread_self()));
if(id == ile)
id = 0;
++id;
g_mutex_unlock(mutext);
}
int main() {
GError *error = NULL;
int count = 4;
while(--count)
g_thread_create(watek, GINT_TO_POINTER(++ile), TRUE, &error);
id = 1;
}
To nie jest przetestowane, może działać niepoprawnie.
Pozdrawiam.
--
Linux user: #376500 (patrz http://www.linuxcounter.org/)
Technical Details
Message-ID:
<pan.2005.10.29.18.18.24.991489@poczta.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<3d57b$43608cb3$57cff44c$13769@news.chello.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Uzytkownik <uzytkownik2@poczta.onet.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: semafory i procesy w c Date: Sat, 29 Oct 2005 20:18:27 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 52 Message-ID: <pan.2005.10.29.18.18.24.991489@poczta.onet.pl> References: <3d57b$43608cb3$57cff44c$13769@news.chello.pl> NNTP-Posting-Host: dow104.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1130609909 3123 83.24.130.104 (29 Oct 2005 18:18:29 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Sat, 29 Oct 2005 18:18:29 +0000 (UTC) X-User: uzytkownik22 User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit