I get the strong impression that you don't know what you are doing, and when you start playing with threads that's a very bad idea. Not only can you make your app slower and consume significantly more memory by threading if you aren't careful, you can also add intermittent bugs and data corruptions which are pretty much impossible to sort out.
I'd really recommend that you start by reading up on static vs instantiated classes:
What is a static class in Java?[
^] and
Static methods vs Instance methods in Java - GeeksforGeeks[
^]
Them move on to threading and locking:
Java 8 Concurrency Tutorial: Threads and Executors - winterbe[
^] and try some simple apps to get a good feel for the whole concept before you start using is in anger - there is an awful amount you can get wrong very, very easily and a small app is a lot easier to work out what is going wrong that a big complicated one. You can then use that knowledge and experience to get it working in your "real" project.
But do bear in mind that threading is not a magic bullet: each thread needs time on a core to execute: so if you have N cores and N * 2 threads, half of them at least will not be executing at any given moment because they are waiting for a free core. Since each thread adds it's own overhead in terms of both memory and processing to switch threads, (and locking increases that overhead) if you blindly add 100 threads to your app, you're going to degrade performance quite significantly.