11 мая 2012 г., 11:10 отunwindkai

пид для новой темы

У меня быстрый вопрос о новой теме, созданной pthread_create ():

Когда я печатаю pid (get из getpid ()) основного потока и дочернего потока, они совпадают, а когда я использую утилиту htop linux для показа pid, они различаются. Кто-нибудь может мне это объяснить?? Благодарность!

<code>kai@kai-T420s:~/LPI$ ./pthr_create
--------------------------------------
main thread: pid: 4845, ppid: 3335
child thread: pid: 4845, ppid: 3335
</code>

htop показывает:

Ответы на вопрос(2)

10 мая 2012 г., 23:03 отAndy Ross

@Threads есть и идентификатор процесса, возвращаемый из системного вызова getpid (), и идентификатор потока, возвращаемый gettid ().. Я не знаю, о чем сообщает htop, вам следует проверить документы.

11 мая 2012 г., 08:05 отdwalter

pthreads() как легковесные процессы, поэтому они получают PID.

Дополнительную информацию можно найти наhttp: //www.linuxforu.com/2011/08/light-weight-processes-dissecting-linux-threads

Есть также пример того, как получить LWP-Pid для вашей ветки.

#include <stdio.h>
#include <syscall.h>
#include <pthread.h>

int main()
{
     pthread_t tid = pthread_self();
     int sid = syscall(SYS_gettid);
     printf("LWP id is %d\n", sid);
     printf("POSIX thread id is %d\n", tid);
     return 0;
}

ВАШ ОТВЕТ НА ВОПРОС