I am using multiple thread for invoking a function as below.
At table level there is queue number. According to the queue

Number the `MAX_Download_Thread` will be set. So that much thread
will be created and work it continuously. When I put
`MAX_Download_Thread` as 4 it consuming 30% of CPU out of 8 processors.
When make it as 10 it almost consuming 70%. Just want to know whether
any better method to reduce this or this is normal.

```
protected override void OnStart(string[] args)
{
    for (int i = 1; i <= MAX_Download_THREAD; i++)
    {
        int j = i;
        var fileDownloadTread = new Thread(() =>
        {
            new Repo.FILE_DOWNLOAD().PIC_FILE_DOWNLOAD(j);
        });
        fileDownloadTread.Start();
    }
}

```