Sounds like you could benefit a lot from Executors and Thread pools.

Also, you're starting 50 threads. The ideal number usually is closer to the number of physical cores your computer has (say no...