Simply put, multithreaded design allows a program to perform more than one task at the same time. Multithreading is the keystone of modern operating systems such as Windows-95/98 and all modern applications are designed with multithreading in mind. Let's explore how multithreading is put to use in QuadSucker/Web:

Why are four threads better than one? It's true that you only have one modem, and only one connection to the Internet. However, much of the connection time is spent idle, waiting for data to be transmitted by the comparatively slow web server and routers that provide the data. This is true of any Internet transfer, and you have probably noticed this phenomenon when using your web browser. Although each transfer itself is slow, there's no reason why you can't operate four transfers together in parallel.

This is how QuadSucker works: four transfer are initiated in parallel. Let's hypothesize that each transfer requires 5 seconds of waiting time. In a single threaded downloaded, your computer would have to wait 5 seconds for each transfer, for a total of 20 seconds. However, with QuadSucker, the wait occurs in parallel, and you get all four transfers in one wait period -- a speed up of 4X!

So why not use eight threads? or ten threads? or five billion threads? Multithreading exhibits the principle of diminishing returns. Your greatest rewards are realized in going from one thread to two threads. Going from two to four still offers substantial improvement, but not as much as the initial leap from one to two. Going from four to eight offers even less improvement. Going from eight to sixteen probably wouldn't even be noticable. With QuadSucker, I chose to limit the parallelism at four because it offers a good visual layout and excellent performance.