title: Is it really impossible to suspend two std/posix threads at the same time?
body: <p>I want to briefly suspend multiple C++ std threads, running on Linux, at the same time.
  It seems this is not supported by the OS.</p>
  <p>The threads work on tasks that take an uneven and unpredictable amount of time (several seconds).
  I want to suspend them when the CPU temperature rises above a threshold.
  It is impractical to check for suspension within the tasks, only inbetween tasks.</p>
  <p>I would like to simply have all workers suspend operation for a few milliseconds.
  How could that be done?</p>
  <h1>What I'm currently doing</h1>
  <p>I'm currently using a condition variable in a slim, custom binary semaphore class (think C++20 Semaphore).
  A worker checks for suspension before starting the next task by acquiring and immediately releasing the semaphore.
  A separate control thread occupies the control semaphore for a few milliseconds if the temperature is too high.
  This often works well and the CPU temperature is stable.</p>
  <p>I do not care much about a slight delay in suspending the threads.
  However, when one task takes some seconds longer than the others, its thread will continue to run alone.
  This activates CPU turbo mode, which is the opposite of what I want to achieve (it is comparatively power inefficient, thus bad for thermals).
  I cannot deactivate CPU turbo as I do not control the hardware.
  In other words, the tasks take too long to complete.
  So I want to forcefully pause them from outside.</p>