creating a thread takes a few milliseconds, and a new thread eats about 1MB of memory.[1]
In the Java Virtual Machine (JVM), each thread is allocated a private stack to store method call information, local variables, and intermediate results. The default stack size is determined by the operating system and architecture. For most modern systems, the default stack size is typically 1 MB. For example:
Linux/x86 (64-bit): 1 MB
macOS (64-bit): 1 MB
Windows: Uses the system-wide stack size.
You can modify the stack size using the -Xss flag. For instance, to set the stack size to 1 MB, you can use:
java -Xss1m