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

void *task1( void *arg );
void *task2( void *arg );

main( int argc, char *argv[] )
{
     pthread_t     thread1;
     pthread_t     thread2;
    
     int           arg1 = 1;
     int           arg2 = 2;
     
     pthread_create( &thread1, NULL, ( void * ) task1, ( void * ) &arg1 );
     pthread_create( &thread2, NULL, ( void * ) task2, ( void * ) &arg2 );
    
     pthread_join( thread1, NULL );
     pthread_join( thread2, NULL );
     
     return;
}

void *task1( void *arg )
{
     int     i;
     
     for ( i = 0; i < 5; i++ ) {
          printf( "Task 1\n" );
          sched_yield();
     }
     
     return;
}

void *task2( void *arg )
{
     int     i;
     
     for ( i = 0; i < 5; i++ ) {
          printf( "Task 2\n" );
          sched_yield();
     }
     
     return;
}
