<?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>Comments on: Apeluri asincrone realizate în Java</title>
	<atom:link href="http://www.ciorba.name/Index.php?feed=rss2&#038;p=1144" rel="self" type="application/rss+xml" />
	<link>http://www.ciorba.name/?p=1144</link>
	<description>Verba volant, scripta manent</description>
	<lastBuildDate>Sat, 04 Sep 2010 15:50:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Dumitru</title>
		<link>http://www.ciorba.name/?p=1144&#038;cpage=1#comment-318</link>
		<dc:creator>Dumitru</dc:creator>
		<pubDate>Mon, 12 Oct 2009 20:44:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.ciorba.name/?p=1144#comment-318</guid>
		<description>Este adevărat că sunt mai &quot;sensibil&quot; faţă de C#, dar niciodată nu am susţinut supremaţia totală a acestui limbaj ;) . Şi c&#238;t ţine de asemănarea codului la sigur este aşa: tehnicile de realizare sunt puţin diferite, dar principiile sunt la fel. 
Iar referitor la &quot;persoane mai puţin experimentate&quot;,  tu nicidecum nu mai poţi fi &#238;n această categorie...  :) </description>
		<content:encoded><![CDATA[<p>Este adevărat că sunt mai &quot;sensibil&quot; faţă de C#, dar niciodată nu am susţinut supremaţia totală a acestui limbaj <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . Şi c&icirc;t ţine de asemănarea codului la sigur este aşa: tehnicile de realizare sunt puţin diferite, dar principiile sunt la fel.<br />
Iar referitor la &quot;persoane mai puţin experimentate&quot;,  tu nicidecum nu mai poţi fi &icirc;n această categorie&#8230;  <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandu</title>
		<link>http://www.ciorba.name/?p=1144&#038;cpage=1#comment-317</link>
		<dc:creator>Sandu</dc:creator>
		<pubDate>Mon, 12 Oct 2009 20:17:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.ciorba.name/?p=1144#comment-317</guid>
		<description>Un moment sensibil pentru mine la lectiile dvs a fost devotamentul dvs pentru C#  ;) 
Clasele anonime in java au aparut nu pentru a copia careva functionalitati din C#, ba chiar au aparut inaintea delegate-urilor din C#. Ele au aparut pentru a imita functionalitatile asa numitor &quot;closures&quot; din limbajele functionale. Asa ca n-as spune ca este mai asemanator codului C#  ;) 
 
Mi-a placut raspunsul lui Doug Lea. Sunt total deacord cu acea fraza. Plus la asta e o modalitate foarte buna de a raspunde unei persoane mai putin experimentate, am s-o iau si eu in arsenalul meu  :) </description>
		<content:encoded><![CDATA[<p>Un moment sensibil pentru mine la lectiile dvs a fost devotamentul dvs pentru C#  <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Clasele anonime in java au aparut nu pentru a copia careva functionalitati din C#, ba chiar au aparut inaintea delegate-urilor din C#. Ele au aparut pentru a imita functionalitatile asa numitor &quot;closures&quot; din limbajele functionale. Asa ca n-as spune ca este mai asemanator codului C#  <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p>Mi-a placut raspunsul lui Doug Lea. Sunt total deacord cu acea fraza. Plus la asta e o modalitate foarte buna de a raspunde unei persoane mai putin experimentate, am s-o iau si eu in arsenalul meu  <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andronachi Vadim</title>
		<link>http://www.ciorba.name/?p=1144&#038;cpage=1#comment-315</link>
		<dc:creator>Andronachi Vadim</dc:creator>
		<pubDate>Sun, 11 Oct 2009 17:53:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.ciorba.name/?p=1144#comment-315</guid>
		<description>Sugestie :) ! 
Se poate de scăpat de acest MethodResult prin incapsularea acestuia &#238;n AsyncCall și crearea funcțiilor BeginInvoke și EndInvoke ca funcții instanță (GRASP-High Cohesion), dar acesta ține de contextul problemei ;)  </description>
		<content:encoded><![CDATA[<p>Sugestie <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  !<br />
Se poate de scăpat de acest MethodResult prin incapsularea acestuia &icirc;n AsyncCall și crearea funcțiilor BeginInvoke și EndInvoke ca funcții instanță (GRASP-High Cohesion), dar acesta ține de contextul problemei <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andronachi Vadim</title>
		<link>http://www.ciorba.name/?p=1144&#038;cpage=1#comment-314</link>
		<dc:creator>Andronachi Vadim</dc:creator>
		<pubDate>Sun, 11 Oct 2009 17:18:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.ciorba.name/?p=1144#comment-314</guid>
		<description>Dacă de implementat acest model utiliz&#238;nd tehnologia reflection, cum ați spus mai sus ca sugestie &#238;ntradevăr se obține un nou model mai flexibil care face o legatură mai slabă cu funcția invocată, și plus nu impune implementarea interfeței MethodRequest. 
 </description>
		<content:encoded><![CDATA[<p>Dacă de implementat acest model utiliz&icirc;nd tehnologia reflection, cum ați spus mai sus ca sugestie &icirc;ntradevăr se obține un nou model mai flexibil care face o legatură mai slabă cu funcția invocată, și plus nu impune implementarea interfeței MethodRequest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dumitru</title>
		<link>http://www.ciorba.name/?p=1144&#038;cpage=1#comment-313</link>
		<dc:creator>Dumitru</dc:creator>
		<pubDate>Sun, 11 Oct 2009 15:44:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.ciorba.name/?p=1144#comment-313</guid>
		<description>Bravo, Sandu! 
Este adevărat ca codul ce l-ai prezentat este mai compact şi mai asemănător codului C# (am discutat despre aceasta şi cu studenţii mei), dar nu sunt convins ca este mult mai simplu şi mai eficient. &#206;n plus am dorit ca metoda apelată asincron să poată fi &#238;ncapsulată. Iar acest lucru poate fi util de exemplu pentru Mobile Code. Mai pui că realizarea proprie iţi permite controlul complexităţii şi flexibilităţii.  
Sunt convins că cunoşti cine este Doug Lea. &#206;n contextul descrierii unor cursuri de programare la &#238;ntrebarea &#8222;What&#039;s the biggest mistake you made?&#8221; el răspundea &#8220;In our first year, we probably over-exploited how easy it is to learn basics; sometimes forgetting that it still takes time to gain minimal ``programming maturity&#039;&#039; in any language.&#8220;. Sper că vei interpreta la fel.  
Dar pentru exemplu &#238;ţi mulţumesc. Deşi &#238;mi anticipează un articol despre java.util.concurrency, sunt convins că le va fi util studenţilor mei actuali.   
;) </description>
		<content:encoded><![CDATA[<p>Bravo, Sandu!<br />
Este adevărat ca codul ce l-ai prezentat este mai compact şi mai asemănător codului C# (am discutat despre aceasta şi cu studenţii mei), dar nu sunt convins ca este mult mai simplu şi mai eficient. &Icirc;n plus am dorit ca metoda apelată asincron să poată fi &icirc;ncapsulată. Iar acest lucru poate fi util de exemplu pentru Mobile Code. Mai pui că realizarea proprie iţi permite controlul complexităţii şi flexibilităţii.<br />
Sunt convins că cunoşti cine este Doug Lea. &Icirc;n contextul descrierii unor cursuri de programare la &icirc;ntrebarea &bdquo;What&#039;s the biggest mistake you made?&rdquo; el răspundea &ldquo;In our first year, we probably over-exploited how easy it is to learn basics; sometimes forgetting that it still takes time to gain minimal &#8220;programming maturity&#039;&#039; in any language.&ldquo;. Sper că vei interpreta la fel.<br />
Dar pentru exemplu &icirc;ţi mulţumesc. Deşi &icirc;mi anticipează un articol despre java.util.concurrency, sunt convins că le va fi util studenţilor mei actuali.    <img src='http://www.ciorba.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandu</title>
		<link>http://www.ciorba.name/?p=1144&#038;cpage=1#comment-311</link>
		<dc:creator>Sandu</dc:creator>
		<pubDate>Sun, 11 Oct 2009 12:39:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.ciorba.name/?p=1144#comment-311</guid>
		<description>Pentru ce de complicat asa lucrurile cand totul se poate face atat de simplu utilizand ceea ce ne ofera java.util.concurrent?  
Mai jos un exemplu cum se poate de apelat o functie asincron utilizand interfetele Callable si Future din java.util.concurrent  
  
import java.util.concurrent.Callable;  
import java.util.concurrent.Executors;  
import java.util.concurrent.Future;  
  
public class Main {  
public static String helloWorld() {  
System.out.println(&quot;apelare helloWorld&quot;);  
return &quot;hello world&quot;;  
}  
public static void main(String[] args) throws Exception {  
//apelare asincrona  
Future mResult = Executors.newSingleThreadExecutor()  
.submit(new Callable() {  
@Override  
public String call() throws Exception {  
return helloWorld();  
}  
});  
//Thread.currentThread().sleep(1000);  
System.out.println(&quot;main&quot;);  
//citirea rezultatului functiei apelata asincron  
System.out.println(mResult.get());  
}  
}  
  
  </description>
		<content:encoded><![CDATA[<p>Pentru ce de complicat asa lucrurile cand totul se poate face atat de simplu utilizand ceea ce ne ofera java.util.concurrent?<br />
Mai jos un exemplu cum se poate de apelat o functie asincron utilizand interfetele Callable si Future din java.util.concurrent  </p>
<p>import java.util.concurrent.Callable;<br />
import java.util.concurrent.Executors;<br />
import java.util.concurrent.Future;  </p>
<p>public class Main {<br />
public static String helloWorld() {<br />
System.out.println(&#8220;apelare helloWorld&#8221;);<br />
return &#8220;hello world&#8221;;<br />
}<br />
public static void main(String[] args) throws Exception {<br />
//apelare asincrona<br />
Future mResult = Executors.newSingleThreadExecutor()<br />
.submit(new Callable() {<br />
@Override<br />
public String call() throws Exception {<br />
return helloWorld();<br />
}<br />
});<br />
//Thread.currentThread().sleep(1000);<br />
System.out.println(&#8220;main&#8221;);<br />
//citirea rezultatului functiei apelata asincron<br />
System.out.println(mResult.get());<br />
}<br />
}</p>
]]></content:encoded>
	</item>
</channel>
</rss>
