View Single Post
  #18 (permalink)  
Old January 16th, 2005
sberlin sberlin is offline
Software Developer
 
Join Date: November 4th, 2002
Location: New York
Posts: 1,366
sberlin is flying high
Default

LimeWire handles all inactive downloads with a single thread since LimeWire 4.1.2. Previously, every single download required it's own thread to manage itself. Active downloads, however, require a thread for management and another thread for each source. There's no way around that, just yet.

We're in the process of upgrading the network to Java 1.4 (part of what our new installer is planned to do). Once that happens, we can begin to design using what's called "non-blocking I/O" -- that means we can send & receive information asynchronously -- without having to dedicate a resource just to sending (and waiting till it was sent) & receiving (and waiting till something was received).

We had always intended to add NIO before, but the complexity of having to design for both blocking & non-blocking streams always stopped the project from being finished. Using Java 1.4, we can design strictly for NIO (not to mention use lots of other great Java 1.4 features).