I'm working on a multithreaded application, in C++, using the ACE framework for TCP and threads.
When used in certain conditions, the application can have up to 400 threads running. All those threads are running a loop with several operations and a sleep of 100 milliseconds.
When used in the worst conditions, top sometimes shows %CPU > 100 (up to 533).
I don't understand this result. Can someone explain how this is possible (how the %CPU is computed to get over 100%) ? Is related to the number of threads ?