Why does Linux not implement pthread_suspend() and pthread_resume()?

From: Dr. Henning Kopp
Date: Sun Jan 14 2024 - 06:18:07 EST


Hi everyone,

I have a question regarding pthreads. In particular, I was wondering why there is no way to suspend and resume a thread in Linux.

In Windows, there is SuspendThread() and ResumeThread() from processthreadsapi.h. However in Linux, there does not seem to be a similar function in pthread.h.

When researching this issue i found multiple ways to work around the inability of suspending a thread, such as using mutexes. But my question is why nobody bothered implementing suspending/resuming threads.

I found one answer on stackoverflow [1] that mentions that pthread_suspend and pthread_resume_np is in the "Unix specification", but not implemented in Linux. I tried to follow up on this hint and get access to the Posix spec, but i am not affiliated with a university anymore, so i was unable to download the spec.

I read "man 7 pthreads". It mentions that there are two Linux implementations of Posix threads, that differ in some details from the Posix spec. However, it does not mention suspending or resuming threads at all.

I hope this is the right mailing list for my question. If it is off-topic, please accept my apologies.

So my question is: What is the reason that Linux does not implement functions for suspending and resuming threads?


Best regards
Henning


[1] https://stackoverflow.com/questions/11468333/linux-threads-suspend-resume/13399592#13399592