when you are setting up a load test you are setting three parameters for threads: Number of users (threads), ramp up period, loop count.
Number of threads is the total number of users you will have when tests is running. You can have multiple runs by setting loop count for your test, but number of threads would never be bigger than the value you have set.
Ramp up period is how long it can take for all threads to be created in seconds. If you set it to for example 10 seconds, it will take this time for all threads to be created in your test run.
Loop count only affects how many times the test will be repeated.
So if you have 100 threads, 0 seconds ramp up period and loop count set to 1, then all 100 threads will be created right away, in your case all 2000.
I would sugest trying out different combinations to see how your web application is handling the load. You will then see and undersand better how JMeter is creating and executing the threads.
I would start with 100 threads, 10 seconds ramp up, 1 loop, and then slowly increase number of threads, decrease ramp up period, and increase number of loops.