Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

c . में pthread_cancel ()

थ्रेड आईडी द्वारा एक विशेष थ्रेड को रद्द करने के लिए threa_cancel () का उपयोग किया जाता है। यह फ़ंक्शन समाप्ति के लिए थ्रेड को एक रद्दीकरण अनुरोध भेजता है। pthread_cancel() का सिंटैक्स नीचे जैसा है -

int pthread_cancel(pthread_t th);

अब, आइए देखें कि इस फ़ंक्शन का उपयोग करके थ्रेड्स को कैसे रद्द किया जाए।

उदाहरण

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <pthread.h>
int count = 0;
pthread_t sample_thread;
void* thread_one_func(void* p) {
   while (1) {
      printf("This is thread 1\n");
      sleep(1); // wait for 1 seconds
      count++;
      if (count == 5) {
         //if the counter is 5, then request to cancel thread two and exit from current thread
         pthread_cancel(sample_thread);
         pthread_exit(NULL);
      }
   }
}
void* thread_two_func(void* p) {
   sample_thread = pthread_self(); //store the id of thread 2
   while (1) {
      printf("This is thread 2\n");
      sleep(2); // wit for 2 seconds
   }
}
main() {
   pthread_t t1, t2;
   //create two threads
   pthread_create(&t1, NULL, thread_one_func, NULL);
   pthread_create(&t2, NULL, thread_two_func, NULL);
   //wait for completing threads
   pthread_join(t1, NULL);
   pthread_join(t2, NULL);
}

आउटपुट

This is thread 2
This is thread 1
This is thread 1
This is thread 2
This is thread 1
This is thread 1
This is thread 1
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2
This is thread 2

  1. सी # में धागे

    एक थ्रेड को प्रोग्राम के निष्पादन पथ के रूप में परिभाषित किया जाता है। प्रत्येक धागा नियंत्रण के एक अद्वितीय प्रवाह को परिभाषित करता है। यदि आपके एप्लिकेशन में जटिल और समय लेने वाली कार्रवाइयां शामिल हैं, तो यह अक्सर अलग-अलग निष्पादन पथ या थ्रेड सेट करने में सहायक होता है, जिसमें प्रत्येक थ्रेड एक व

  1. सी # प्रोग्राम एक थ्रेड को मारने के लिए

    पहले एक थ्रेड बनाएं और उसे शुरू करें - // new thread Thread thread = new Thread(c.display); thread.Start(); अब थ्रेड प्रदर्शित करें और थ्रेड के कार्य को रोकने के लिए स्टॉप फ़ंक्शन सेट करें - public void display() {    while (!flag) {       Console.WriteLine("It's W

  1. जावा में थ्रेड पूल

    एक थ्रेड पूल प्री-इनिशियलाइज़्ड थ्रेड्स का एक संग्रह है। थ्रेड पूल के पीछे सामान्य योजना यह है कि मेथड स्टार्टअप पर विभिन्न प्रकार के थ्रेड्स बनाएं और उन्हें एक पूल में रखें, जहाँ भी वे बैठते हैं और काम की उम्मीद करते हैं। एक बार जब कोई सर्वर भागीदारी के लिए कॉल प्राप्त करता है, तो यह इस पूल से एक ध