user3015353
user3015353

Reputation: 29

Can some one please explain the following code of threads?

So I am new to system programming and learning threads.What does the term posix means? I need help in understanding the following code.

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

void *print_message_function( void *ptr );

main()

{

     pthread_t thread1, thread2;

     const char *message1 = "Thread 1";

     const char *message2 = "Thread 2";

     int  iret1, iret2;

     iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);

     iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);


     pthread_join( thread1, NULL);
     pthread_join( thread2, NULL);

     printf("Thread 1 returns: %d\n",iret1);
     printf("Thread 2 returns: %d\n",iret2);
     exit(0);

}

void *print_message_function( void *ptr )
{

     char *message;
     message = (char *) ptr;
     printf("%s \n", message);

}

I dont understand the line: pthread_join( thread1, NULL); and the function: void *print_message_function( void *ptr ).

Also, what does the variable iret returns?

Upvotes: 0

Views: 452

Answers (2)

ichramm
ichramm

Reputation: 6642

You should read posix documentation.

I dont understand the line: pthread_join( thread1, NULL); and the function: void *print_message_function( void *ptr ).

  1. pthread_join blocks until the thread terminates
  2. void *print_message_function( void *ptr ) is a function returning void* and receiving a void* as parameter

Again, you should read posix documentation (and learn more C).

Upvotes: 1

The D Merged
The D Merged

Reputation: 680

It spawns two threads.

Saves their "return values" to variables previously declared.

Joins to threads, basically waits for them to stop.

Prints the variables

exits with status 0, normal successful exit

posix is a general standard for Unix like operating systems. E.g file structure etc

Upvotes: 1

Related Questions