<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GiorgioRavera.it &#187; Programmazione</title>
	<atom:link href="http://www.giorgioravera.it/category/informatica/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.giorgioravera.it</link>
	<description>il mio blog: ciò che penso e faccio, trucchi di programmazione, linux, reti e molto altro</description>
	<lastBuildDate>Fri, 12 Feb 2010 22:19:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Schema per Gestore Informazioni</title>
		<link>http://www.giorgioravera.it/2009/11/schema-per-gestore-informazioni/</link>
		<comments>http://www.giorgioravera.it/2009/11/schema-per-gestore-informazioni/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 22:09:38 +0000</pubDate>
		<dc:creator>Giorgio</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://www.giorgioravera.it/?p=11</guid>
		<description><![CDATA[Situazione tipica: Generatore di informazioni (eventi, ordini, servizi) Gestore di informazioni N Esecutori M Clienti In questo contesto è necessaria...]]></description>
			<content:encoded><![CDATA[<div>
<p>Situazione tipica:</p>
<ul>
<li>Generatore di informazioni (eventi, ordini, servizi)</li>
<li>Gestore di informazioni</li>
<li>N Esecutori</li>
<li>M Clienti</li>
</ul>
<p>In questo contesto è necessaria una corretta sincronizzazione utilizzando uno schema comune:</p>
<ol>
<li>Il generatore di informazioni ha un puntatore al generatore di informazioni. Ogni tanto genera un infomazione e la va a settare all’interno del generatore, tramite una opportuna funzione, risvegliando il thread associato al gestore.</li>
<li>Il gestore ha al suo interno una lista di esecutori e di informazioni. Se non ci sono informazioni da trattare resta in wait. Appena viene svegliato dal generatore, cerca un esecutore libero, gli va a settare l’informazione da elaborare tramite una funzione della classe Esecutore e lo sveglia. Se tutti gli esecutori sono impiegati attendo che si liberi un esecutore addormentandomi su un oggetto diverso da quello che viene usato dal Generatore di informazioni.</li>
<li>Gli esecutori sono thread con un run molto semplice: ciclo all’infinito, se non devono lavorare dormono, una volta che vengono svegliati simulano il lavoro stando in sleep per un tempo randomico di secondi e notificano al Gestore di aver terminato il lavoro.</li>
</ol>
<p>Esercizi di questo tipo si possono basare su questo modello tenendo conto delle opportune varianti del caso.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.giorgioravera.it/2009/11/schema-per-gestore-informazioni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

