They don’t. Simultaneous only the amount of existing processors. There is an illusion of simultaneity, as occurs on your computer now. It has hundreds or thousands of processes running and it seems that everything is simultaneous, but it is not. There is a change of execution.
The operating system will schedule a thread each time on each existing processor. As the exchange happens very fast it seems superficially that they are running simultaneously, but if you do a basic test of time you will see that it is not quite so.
We’re talking about a processor. It turns out that most of the tasks involve input and output, so while reading or writing data externally to the processor it becomes idle so have several threads, well more than these 8 can be useful since as a thread waits for the external resource to respond to another that is not depending on external resource can perform, which helps give the illusion of simultaneity.
Actually today it is more common for applications to work asynchronously and not depend so much on threads explicit to compensate for the use of external access.
Anyway I have my doubts if a single server can meet thousands of "simultaneous" requests with PHP.
Node limits the virtual amount of Cpus because it works asynchronously, there is no need to use threads in excess because the processor is triggered as needed, there need be no competition from CPU resources. It queues the requests in excess since there is no way to meet more than the capacity of the hardware, thus saves with the management and so scale much better, apart from the fact that the use is not so much in the "luck" of the moment.
The Node has been known to do this, but all technologies do this today, in general they use the libuv. In general people do not understand much of what they are doing, they read something and think it is what is written without questioning, without understanding what is happening there.
Read It’s always guaranteed that a multi-threaded application runs faster than using a single thread? to better understand.
I believe that with simultaneous you mean: "customers accessing at the same time". Theoretically there is no limitation, I mean, the limitation is your equipment. You may have some client lag (browsers make several attempts before giving up), but if your server is well configured it can serve 8000+ simultaneous clients.
– user178974
Since this in debugging time would require many machines to do a realistic test, it is not done in development environment, To get an idea of the real capacity of the server will have to put it online and monitor its status. Of course, a common desktop won’t display the same performance as a server with 4 Xeon, 128 GB of memory. Even though there are many processors, there is a bottleneck in the network (a router, a NIC).
– user178974
In practice if you need to meet a lot of customers will have to do some kind of load balancing with an intelligent router that distributes the connections by anycast with load distance parameter.
– user178974