简体   繁体   中英

creating time specific threads

I have written a sample program to implement array of threads.There are two thread functions. Is there any way to define a fixed value of time (in seconds) after which all the threads will automatically stop?

Sample program:

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


void * threadFunc1(void * arg)
{

    int id = *((int *) arg);
    printf("Inside threadfunc2 for thread %d\n",id)
    while(1);
}

void * threadFunc2(void * arg)
{
    int i= *((int *)arg);
    printf("Inside threadfunc2 for thread %d\n",i)
    while(1);
}

int main(void)
{

    pthread_t thread[10];

    for(int i=0;i<10;i++)
    {

        pthread_create(&thread[i],NULL,threadFunc1,(void*)&i ); 
        pthread_create(&thread[i],NULL,threadFunc,(void*)&i );
    }

    for (i=0;i<total;i++)
    {
          pthread_join(thread[i],NULL);
      }
    return 0;
 }

Instead of waiting for the threads with pthread_join you could put your main thread to sleep, eg with nanosleep . If you then quit your main without joining, your whole process will be killed.

No, there is not. Threads do not 'automatically stop'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM