To begin with thread speed is an relative concept and depends on your CPU (starting 150 threads with complex processing can be cumbersome, less is more!).
In general, bad threading logic can easily result in slowing down application... and to some odd exceptions.
Three things come to mind when I look at you example_
1. Test method jumps out as really bad.
Inside catch block you don't handle exception, you just recursively repeat call to
Test method, that can result in (semi-)endless loop.
2. If by cracker you mean web crawler then network speed can be a factor.
3. Perhaps there are shared resources (properties) between threads which aren't properly shared or are locked too long.
Use
perfmon tool for pinpointing bottlenecks in you application.
Good luck!