#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; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)