I have a high level understanding of threads, mutexes, etc. and about avoiding race conditions, sharing memory etc between threads, and making threads sleep / how timesharing works between threads and processes.
But my knowledge is very high-level, I'm used to using thread libraries like what is provided by .NET, Java or the QT library.
What does it mean to "fork" a thread, or "join" a thread, when you're dealing with POSIX threads in C? Also what is thread "signalling", if such a thing exists?