When experimenting with thread creation in Java, a user noted that despite attempting to create one million threads, the operating system maintained a limit of around 1,000 active threads. This behavior can be attributed to several factors, including potential undocumented limits on thread creation imposed by the OS and the inefficiencies associated with managing a high number of threads. It is uncommon for applications to utilize more than 100 threads simultaneously, as doing so can lead to poor design and performance issues like "thrashing," where excessive context switching occurs, hindering actual work being done. Each thread requires its own stack, and with Java Virtual Machines typically allocating 1 MB per thread, attempting to create a million threads would demand an impractical amount of memory. Additionally, many threads may remain inactive or I/O suspended, waiting for resources, which further limits the number of effectively running threads. The discussion highlights the importance of thread management and the inherent limitations of operating systems in handling excessive threading.