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

C में pthread_cancel()

pthread_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("यह थ्रेड 1 है\n");
        sleep(1); // 1 सेकंड प्रतीक्षा करें
        count++;
        if (count == 5) {
            // यदि काउंटर 5 है तो थ्रेड दो को रद्द करने का अनुरोध करें और वर्तमान थ्रेड से बाहर निकलें
            pthread_cancel(sample_thread);
            pthread_exit(NULL);
        }
    }
}

void* thread_two_func(void* p) {
    sample_thread = pthread_self(); // थ्रेड 2 की आईडी संग्रहीत करें
    while (1) {
        printf("यह थ्रेड 2 है\n");
        sleep(2); // 2 सेकंड प्रतीक्षा करें
    }
}

int main() {
    pthread_t t1, t2;
    // दो थ्रेड्स बनाएं
    pthread_create(&t1, NULL, thread_one_func, NULL);
    pthread_create(&t2, NULL, thread_two_func, NULL);
    // थ्रेड्स पूरा होने की प्रतीक्षा करें
    pthread_join(t1, NULL);
    pthread_join(t2, NULL);
}

आउटपुट

यह थ्रेड 2 है
यह थ्रेड 1 है
यह थ्रेड 1 है
यह थ्रेड 2 है
यह थ्रेड 1 है
यह थ्रेड 1 है
यह थ्रेड 1 है
यह थ्रेड 2 है
... (थ्रेड 2 चलता रहता है क्योंकि इसे रद्द नहीं किया गया था)
  1. - C# में थ्रेड्स (Threads)

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

  1. - C# में थ्रेड को समाप्त करना (Kill/Stop)

    महत्वपूर्ण: .NET में Thread.Abort() मेथड अप्रचलित (obsolete) है और इसका उपयोग नहीं करना चाहिए क्योंकि यह अप्रत्याशित व्यवहार और संसाधन लीक का कारण बन सकता है। सही दृष्टिकोण: कैंसिलेशन टोकन/फ्लैग पैटर्न थ्रेड को सुरक्षित रूप से रोकने के लिए एक शेयर्ड फ्लैग (या CancellationToken) का उपयोग करें जिसे थ

  1. - Java में थ्रेड पूल

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