@Sam it is a lot. In general you should not use more than 2x no of cores system (real) threads. Otherwise context switching can kill Your app. But there is other solution, i. e. green (lightweight) threads, which runs in userspace. Unlike system threads (which are de facto independent processes) you can spawn them almost as much as you can. This is how it works In Go or Erlang.