<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comentários sobre: Concorrência ou paralelismo: Threads, Processes, Fibers e Actors</title>
	<atom:link href="http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/</link>
	<description>blog dos desenvolvedores da Caelum</description>
	<lastBuildDate>Wed, 16 May 2012 20:16:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Por: Paulo Silveira</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-60104</link>
		<dc:creator>Paulo Silveira</dc:creator>
		<pubDate>Tue, 13 Oct 2009 10:10:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-60104</guid>
		<description>@Guilherme Garnier, metodo modificado!

Pra quem esta interessado em STM:
http://kskky.info/wiki/STM.NETInFramework4</description>
		<content:encoded><![CDATA[<p>@Guilherme Garnier, metodo modificado!</p>
<p>Pra quem esta interessado em STM:<br />
<a href="http://kskky.info/wiki/STM.NETInFramework4" rel="nofollow">http://kskky.info/wiki/STM.NETInFramework4</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Guilherme Garnier</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59963</link>
		<dc:creator>Guilherme Garnier</dc:creator>
		<pubDate>Wed, 30 Sep 2009 20:18:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59963</guid>
		<description>Excelente post Guilherme. Só mais um errinho: o nome do método no primeiro exemplo é processaRelatorio,  e não processa_relatorio.</description>
		<content:encoded><![CDATA[<p>Excelente post Guilherme. Só mais um errinho: o nome do método no primeiro exemplo é processaRelatorio,  e não processa_relatorio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Savio</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59919</link>
		<dc:creator>Savio</dc:creator>
		<pubDate>Sat, 26 Sep 2009 00:40:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59919</guid>
		<description>Perfeitamente. 

Com callbacks, thread pools e selectors o lance fica flexível mesmo. Já cobre a maioria esmagadora dos casos.

Obrigado pela explicação. :)</description>
		<content:encoded><![CDATA[<p>Perfeitamente. </p>
<p>Com callbacks, thread pools e selectors o lance fica flexível mesmo. Já cobre a maioria esmagadora dos casos.</p>
<p>Obrigado pela explicação. <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo Silveira</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59918</link>
		<dc:creator>Paulo Silveira</dc:creator>
		<pubDate>Sat, 26 Sep 2009 00:19:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59918</guid>
		<description>Ola Savio!

O Selector do java.nio vai fazer isso pra voce, e voce pode esperar algo por callback pelo PooledExecutor se quiser. Mas nao sei comparar com esses frameworks que voce postou, ja ta bem longe do meu conhecimento. Dizem que o java.nio é bem flexivel tambem comparado com as outras linguagens, e que a proposta do nio2 vai mais longe ainda.

Paulo</description>
		<content:encoded><![CDATA[<p>Ola Savio!</p>
<p>O Selector do java.nio vai fazer isso pra voce, e voce pode esperar algo por callback pelo PooledExecutor se quiser. Mas nao sei comparar com esses frameworks que voce postou, ja ta bem longe do meu conhecimento. Dizem que o java.nio é bem flexivel tambem comparado com as outras linguagens, e que a proposta do nio2 vai mais longe ainda.</p>
<p>Paulo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Savio</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59917</link>
		<dc:creator>Savio</dc:creator>
		<pubDate>Sat, 26 Sep 2009 00:04:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59917</guid>
		<description>Essa API do java na verdade é um non-blocking IO por polling, certo?

Uma outra forma de async IO talvez mais interessante é por callbacks e eventos.

Frameworks como Twisted (python), Boost.ASIO (c++) e a API aio_* do Linux 2.6 fazem async IOs muito mais robustas e flexíveis.

Pra que fazer polling se eu posso receber uma mensagem quando minha tarefa estiver pronta? :-)

Att.</description>
		<content:encoded><![CDATA[<p>Essa API do java na verdade é um non-blocking IO por polling, certo?</p>
<p>Uma outra forma de async IO talvez mais interessante é por callbacks e eventos.</p>
<p>Frameworks como Twisted (python), Boost.ASIO (c++) e a API aio_* do Linux 2.6 fazem async IOs muito mais robustas e flexíveis.</p>
<p>Pra que fazer polling se eu posso receber uma mensagem quando minha tarefa estiver pronta? <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Att.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo Silveira</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59915</link>
		<dc:creator>Paulo Silveira</dc:creator>
		<pubDate>Fri, 25 Sep 2009 21:10:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59915</guid>
		<description>Ola Savio! Quase no fim do artigo ha sim citação sobre a API não blocante e assincrona do Java: o java.nio!</description>
		<content:encoded><![CDATA[<p>Ola Savio! Quase no fim do artigo ha sim citação sobre a API não blocante e assincrona do Java: o java.nio!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Savio</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59914</link>
		<dc:creator>Savio</dc:creator>
		<pubDate>Fri, 25 Sep 2009 20:47:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59914</guid>
		<description>Bom post. 

Obviamente o objetivo não era ser abrangente, mas achei que pecaram em não citar I/O Assíncrona. Esse conceito é muito importante porque livra a mente do programador de achar que tudo se resolve com threads. Na prática quase nunca thread é a solução ideal. Quase nunca precisamos de concorrência _real_, i.e., execução simultânea em cores/processadores diferentes. O que normalmente precisamos é orquestrar tarefas, e permitir mais de um fluxo de execução. Isso não implica em concorrência real.</description>
		<content:encoded><![CDATA[<p>Bom post. </p>
<p>Obviamente o objetivo não era ser abrangente, mas achei que pecaram em não citar I/O Assíncrona. Esse conceito é muito importante porque livra a mente do programador de achar que tudo se resolve com threads. Na prática quase nunca thread é a solução ideal. Quase nunca precisamos de concorrência _real_, i.e., execução simultânea em cores/processadores diferentes. O que normalmente precisamos é orquestrar tarefas, e permitir mais de um fluxo de execução. Isso não implica em concorrência real.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Guilherme Silveira</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59913</link>
		<dc:creator>Guilherme Silveira</dc:creator>
		<pubDate>Fri, 25 Sep 2009 19:02:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59913</guid>
		<description>Henrique, muito obrigado, as alterações já foram feitas.
Leandro, William, obrigado por adicionarem mais valor as informações do post

Abraço</description>
		<content:encoded><![CDATA[<p>Henrique, muito obrigado, as alterações já foram feitas.<br />
Leandro, William, obrigado por adicionarem mais valor as informações do post</p>
<p>Abraço</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Leandro Silva</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59911</link>
		<dc:creator>Leandro Silva</dc:creator>
		<pubDate>Fri, 25 Sep 2009 16:46:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59911</guid>
		<description>Muito bom, Guilherme!

Uma alternativa para concorrência Java baseada em troca de mensagens é a biblioteca Jetlang:

http://code.google.com/p/jetlang

Para ser franco, acho ela um tanto ruidosa. Quando fiz alguns estudos sobre concorrência e paralelismo tempos atrás, conheci a GParallelizer (em Groovy) que você citou, e fiquei bem inspirado a fazer algo bem próximo disso em Java. Tive algum sucesso no design da API, mas a implementação ainda está um tanto pobre.

Mais uma vez, ótimo post!</description>
		<content:encoded><![CDATA[<p>Muito bom, Guilherme!</p>
<p>Uma alternativa para concorrência Java baseada em troca de mensagens é a biblioteca Jetlang:</p>
<p><a href="http://code.google.com/p/jetlang" rel="nofollow">http://code.google.com/p/jetlang</a></p>
<p>Para ser franco, acho ela um tanto ruidosa. Quando fiz alguns estudos sobre concorrência e paralelismo tempos atrás, conheci a GParallelizer (em Groovy) que você citou, e fiquei bem inspirado a fazer algo bem próximo disso em Java. Tive algum sucesso no design da API, mas a implementação ainda está um tanto pobre.</p>
<p>Mais uma vez, ótimo post!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Henrique Abreu</title>
		<link>http://blog.caelum.com.br/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors/comment-page-1/#comment-59910</link>
		<dc:creator>Henrique Abreu</dc:creator>
		<pubDate>Fri, 25 Sep 2009 16:05:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1092#comment-59910</guid>
		<description>Bom post, mas tem uns erros no tipo de retorno das funções no 1º código:
void geraCorpo ... void geraRodape ... void processaRelatorio
return geraCorpo + geraRodape ?

Abraço,</description>
		<content:encoded><![CDATA[<p>Bom post, mas tem uns erros no tipo de retorno das funções no 1º código:<br />
void geraCorpo &#8230; void geraRodape &#8230; void processaRelatorio<br />
return geraCorpo + geraRodape ?</p>
<p>Abraço,</p>
]]></content:encoded>
	</item>
</channel>
</rss>

