开发者

Creating Dynamic Threads in C

开发者 https://www.devze.com 2022-12-22 19:54 出处:网络
How do we create multiple thread during runtime in C programming language? If开发者_StackOverflow we need to create same amount of thread as specified by the user how do we do it?On Linux use pthread

How do we create multiple thread during runtime in C programming language? If开发者_StackOverflow we need to create same amount of thread as specified by the user how do we do it?


On Linux use pthreads

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

void *print_message_function( void *ptr );

int main(int argc, char *argv[])
{
     pthread_t thread1, thread2;
     char *message1 = "Thread 1";
     char *message2 = "Thread 2";
     int  iret1, iret2;

    /* Create independent threads each of which will execute function */

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

     /* Wait till threads are complete before main continues. Unless we  */
     /* wait we run the risk of executing an exit which will terminate   */
     /* the process and all threads before the threads have completed.   */

     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);
}


Check _beginthread for Windows and posix threads for linux


pthreads


#include<stdio.h>
#include<pthread.h>
#include<unistd.h>
#include<stdlib.h>
void *print()
{
   printf("\nThread Created");
}
int main()
{
    int ch,i;
    pthread_t *t;
    printf("Enter the number of threads you want to create : ");
    scanf("%d",&ch);
    t=(pthread_t *)malloc(ch * sizeof(pthread_t ));
    for(i=0;i<ch;i++)
    {
        pthread_create(&t[i],NULL,print,NULL); //Default Attributes
    }
    for(i=0;i<ch;i++)
    {
        pthread_join(t[i],NULL);
    }
}

This is the most basic code for creating threads during runtime in Linux OS using pthread library.

0

精彩评论

暂无评论...
验证码 换一张
取 消