Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Non blocking socket in NIO

 
ParagS Kulkarni
Ranch Hand
Posts: 60
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
what is the concept behind non blocking sockets in NIO package of java?
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Moving to IO and Streams...
 
David Harkness
Ranch Hand
Posts: 1646
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can find great tutorials on using NIO by searching Google. I did one from IBM's DeveloperWorks, and it was pretty complete.

The main concept is that non-blocking sockets don't block when no data is available to read or the buffer is too full to write. That's it in a nut shell.

Normally, if you have a server that handles multiple requests simultaneously, with blocking I/O you're forced to use a separate thread for each request. If you want to handle 1000 clients at once, you need 1000 threads. Since the majority of time the threads are blocked waiting on I/O operations, this is a huge waste of resources.

With non-blocking I/O, you can have one thread handle all the requests. The thread loops checking a bunch of sockets at once for available data rather than blocking on a single socket.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic