Re: pthread creates one extra thread

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 05, 2004 at 13:51:25 -0800, Shesha Sreenivasamurthy wrote:
> Hi All,
>  I Have the following small code for creating threads.
> 
> #include <stdio.h>
> #include <pthread.h>
> 
> void my_func_1 (void *arg) {
>        while(1) {}
> }
> 
> 
> int main() {
>  pthread_t thread_1;
>  pthread_create(&thread_1, NULL,(void*)& my_func_1, NULL);
> 
>  while(1) { }
>  exit(0);
> }
> 
> gcc -lpthread -o thread test.c
> 
> I expect to have created 2 threads. But when I do ps -ef | grep thread I 
> see 3.
> Say If i use pthread_create and create one more thread, then instead of 
> 3 I see
> 4. Does any one know what is the reason for this behavior?
> 
> Any help is highly regarded.

pthreads require that any thread can join any other thread. But
a process can only wait for it's children. So on first pthread_create,
a master thread is created, which does all the cloning and waiting (and
the main function continues in the CHILD).

-------------------------------------------------------------------------------
						 Jan 'Bulb' Hudec <bulb@ucw.cz>

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux