How to use this for killing array of threads?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • saikumar44
    New Member
    • Nov 2014
    • 2

    How to use this for killing array of threads?

    Code:
    #include<stdio.h>
    #include<signal.h>
    #include<pthread.h>
    
    void *print1(void *tid) 
    {
        pthread_t *td= tid;
        pthread_mutex_t lock1=PTHREAD_MUTEX_INITIALIZER;
        pthread_mutex_lock(&lock1);
        printf("1");
        printf("2");
        printf("3");
        printf("4\n");
        printf("Coming out of thread1 \n");
        sleep(2);
        pthread_mutex_unlock(&lock1);
        pthread_kill(*td,SIGKILL);//killing remaining all threads 
        return NULL;
    }
    void *print2(void *arg) 
    {
        pthread_mutex_t *lock = arg;
        pthread_mutex_lock(lock);
        sleep(5);        
        printf("5");
        sleep(5);
        printf("6");
        sleep(5);
        printf("7");
        sleep(5);
        printf("8\n");
        fflush(stdout);
        pthread_mutex_unlock(lock);
        return NULL;
    }
    int main() 
    {
        int s;
        pthread_t tid1, tid2;
        pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
        printf("creating Thread 1and 2 \n");
        sleep(2);
        pthread_create(&tid1, NULL, print1,&tid2);
        pthread_create(&tid2, NULL, print2,&lock);
        printf("Running Thread 1\n");
        sleep(2);
        pthread_join(tid1, NULL);
        pthread_join(tid2, NULL);
        return 0;
    }
Working...