Multithreading

From Documentation
Jump to: navigation, search

Multi-threading is the ability of the software to run many tasks in parallel. In certain cases, multithreading can improve the performance greatly. In other cases, it may cause adverse and undesirable effects. Generally, it is a good idea to rely on the default multithreading settings. If you would like to change these, please make sure to read and fully understand this article.

How does it help ?

Generally, multi-threading SHOULD speed things up. Especially if you need to do many different tasks at once, you MAY be able to take advantage of multi-threading. But, at a cost.

Let's take an example. You need to create 10 accounts, and your Internet is pretty slow today, it takes a minute or so to load a web page. So instead of just waiting for the pages to load, you open let's say 3 browser windows and while the first one is loading the page, you fill in the signup form in the second one, and then type in captcha in the third one, then come back to the first one and so on. This is an example of multi-threading, with only one difference - our software switches 'browser pages' automatically. So provided that the software is switching the pages a little faster than humans do (and it is in fact so), multi-threading will allow us to create 3 accounts as quickly as one! Sounds great, isn't it? So why don't we launch 1000 or even 10 000 threads to create 10k of accounts in just 3 minutes? Well it's not that simple. If you actually try to open few browser windows and start creating accounts in each of them, you system resources (RAM and CPU speed) will be depleted pretty quickly. So every new window will make your computer run slower and slower, until you get something like "Not enough memory" from your system.

The same exact thing happens with multi-threading inside the software. The more threads you start, the more resources they consume, the less is the overall performance. So it may take longer to create 100 accounts with 100 threads, than with just a single thread!

How do you find out the optimal number of threads? Simple. You need to know how much resources a single task consumes, and how much of these resources your computer has. Then you divide the second figure by the first one - and you get the optimal number of threads! Easy to say, but will take some effort to apply this advice practically. Therefore, we recommend that you use the default multithreading settings, they have been already optimized with the average computer in mind. Of course you are welcome to experiment and set whatever number of threads you feel is good for you.

But be warned: if you start too many threads at once, they may eat up all your free RAM and CPU speed. Your computer may become very slow or even unresponsive, and the only way to revive it would be power cycle or Reset button. You have been warned.

If that doesn't really scare you and you still want to experiment with threads, read on.

Restrictions

In many cases, multithreading is restricted by the IP changing methods. Consider the following example.

You set up automated IP rotation through a simple batch file that reboots your DSL modem, waits for a few seconds - and you have new IP. Now you want to create 3 E-mail accounts, and you want to use different IP address for each account. You also want to create all 3 accounts in parallel. And here comes the problem. In order to create 3 accounts in parallel, we launch 3 separate threads. However, each thread must work through its own IP address, and IP addresses must be different. So your modem must provide 3 different IP addresses at the same time! Can it do that? Very much unlikely. Yes, you can get many IPs via rebooting the modem, but at any given point in time you will have one and only one IP address. It is technically impossible to have more than one IP address attached to your modem. So how will the software handle this situation? Indeed, it will start 3 separate threads as you ordered. The first thread will initiate IP change, reboot your modem, get new IP and start creating an account. The second and 3rd threads will also try to get new IP address, but they will notice that the modem can't provide more than 1 IP in parallel, so these other threads will wait for the first thread to complete. Once it completes, the second thread will take over, change IP, and create account while the 3rd one will be waiting, and so on.

As you can see, there isn't much sense in using multithreading when you can't provide more than one IP address at the same time.

But, when you use proxies for IP rotation, you will be able to enjoy real multi-theading. That is because you can use as many proxies at the same time as you want, so the software can launch multiple threads, and each thread will work through its own proxy, in parallel!

How to change the number of threads ?

Error creating thumbnail: File missing

Open Task Manager tab in the software, and you will see a list of task groups. Each group can be configured for a certain number of threads. Just right-click the group and select Properties, then set the number of threads and click OK