<div class="gmail_quote"><div>I believe some Java 6 NIO calls use epoll on Linux (if the underlying o/s has this support) and select on Windows (which is pretty reliable in my experience)</div><div><br></div><div><a href="http://download.oracle.com/javase/6/docs/technotes/guides/io/enhancements.html">http://download.oracle.com/javase/6/docs/technotes/guides/io/enhancements.html</a></div>
<div><br></div><div>There's a far amount of debate about non-blocking IO versus thread based blocking IO kicking around the internet - it seems the current consensus is NIO for massive scalability and thread based for speed. A lot of the benchmarks are very dependant on the underlying o/s</div>
<div><br></div><div>C</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Am 18.10.2011 20:59, schrieb Michael B Allen:<br>
> BTW: I tried NIO once. Once. It is a crumby implementation of<br>
> select(2) from UNIX (which was always considered by many to be a<br>
> rather crude design in itself). NIO should be called "NoIO". I had<br>
> trouble just getting it to work reliably. And note that NIO would not<br>
> really help that much. It would only help in this particular case<br>
> where you want to communicate with 100 servers in parallel. Otherwise,<br>
> JCIFS is actually extremely efficient. The CIFS protocol allows for<br>
> multiplexing requests. Meaning you can send request A and B and get<br>
> the response for B before A. And JCIFS fully utilizes this. JCIFS can<br>
> touch every file on a workstation in under 10 seconds if the server<br>
> cache is hot. If the non-blocking implementation in Java were better I<br>
> might consider using it. But it's not.<br>
><br>
> Mike<br>
><br>
Hi Mike,<br>
<br>
you are right if you say that selector implementation (introduced<br>
in java 1.4) isn't the easiest part to implement against. And<br>
can lead very quick to the meaning that the socket-part of the<br>
NIO in Java 1.4 should be nearly named "NoIO". But i have done<br>
this part of porting on jcifs (in my private local git-branch) and<br>
even if i am not finished with it, it actually works quite good.<br>
And yes i hate that selector implementation too.<br>
<br>
Java 7 introduces new classes for Asynchronous Network IO<br>
(AsynchronousSocketChannel) with CompletionHandling. This<br>
really makes the task easier to use asyn-network-io. But i think<br>
jcifs is implemented against the java5 feature-set. Am i right<br>
with the latter?<br>
<br>
-- Sebastian<br><br></blockquote></div>