Kürzlich habe ich im Buch "Advanced Linux Programming" (http://www.advancedlinuxprogramming.com/alp-folder/alp-ch04-threads.pdf, Kapitel 4.5) gelesen, dass auf GNU/Linux POSIX-Threads als Prozesse implementiert sind und dass es eine Art "Manager-Thread" gibt. was einige Kontrolle funktioniert.GNU/Linux Thread-Implementierung
Wenn ich führen Sie das folgende Beispiel aus diesem Buch:
#include <stdio.h>
#include <pthread.h>
void* thread_func(void *arg)
{
fprintf(stderr, "thread: %d\n", (int)getpid());
while(1);
return NULL;
}
int main()
{
fprintf(stderr, "main: %d\n", (int)getpid());
pthread_t thread;
pthread_create(&thread, NULL, thread_func, NULL);
while(1);
return 0;
}
ich die gleiche PID für den Haupt-Thread und Kind Thread erhalten haben, während das Buch sagt, dass es anders sein kann & dass es eine andere ist PID, was dem sogenannten "manager thread" entspricht. Ich habe versucht, einige Informationen über diesen "Manager-Thread" zu finden, aber es erweist sich als schwierig.
UPD. Ich habe keine Zweifel über das Verhalten meines Programms, aber es gibt einige Verwirrung über das Verhalten, erklärt auf dem Buch - insbesondere unter welchen Umständen kann es wahr sein?
Der Klon syscall Manpage kann helfen http://linux.die.net/man/2/clone – technosaurus
* Advanced Linux Programming * ist ein sehr gutes Buch, aber es wahrscheinlich früher [ NPTL] (http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library) welches ist das was [glibc] (https://www.gnu.org/software/libc/) verwendet/verwendet. –
Mit Büchern über Technologie, immer wissen, wann das Buch veröffentlicht wurde, in diesem Fall "First Edition, Juni 2001". Die Aussage ist einfach veraltet. –