🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #60253

Re: semafory i procesy w c

#60253
From: Uzytkownik
Date: Sat, 29 Oct 2005 18:18
51 lines
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-mail
References: <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