"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > कैसे प्रभावी ढंग से पता लगाएं कि क्या `std :: थ्रेड` अभी भी C ++ में चल रहा है?

कैसे प्रभावी ढंग से पता लगाएं कि क्या `std :: थ्रेड` अभी भी C ++ में चल रहा है?

2025-05-03 पर पोस्ट किया गया
ब्राउज़ करें:574

] हालांकि, जुड़ाव योग्य () विधि यह निर्धारित करने के लिए डिज़ाइन नहीं की गई है कि क्या कोई धागा अभी भी चल रहा है। इसके बजाय, यह लेख इस आवश्यकता को दूर करने के लिए विभिन्न प्लेटफ़ॉर्म-स्वतंत्र तरीके प्रस्तुत करता है। Std :: भविष्य के साथ :: wait_for (0ms), आप लौटे स्थिति मान की जांच करके थ्रेड की स्थिति की जांच कर सकते हैं:

How to Effectively Check if a `std::thread` is Still Running in C  ?
#भविष्य में शामिल करें #include मुख्य प्रवेश बिंदु() { ऑटो भविष्य = std :: async (std :: लॉन्च :: async, [] { std :: this_thread :: sleep_for (3S); 8 रिटर्न; }); // थ्रेड स्थिति की जाँच करें ऑटो स्थिति = Future.wait_for (0ms); if (स्थिति == std :: Future_status :: तैयार) { std :: cout

std :: वादा (std :: थ्रेड के साथ)

का उपयोग करना #include मुख्य प्रवेश बिंदु() { std :: वादा p; ऑटो भविष्य = p.get_future (); std :: थ्रेड t (

{ std :: this_thread :: sleep_for (3S); p.set_value (सत्य); }); // थ्रेड स्थिति की जाँच करें ऑटो स्थिति = Future.wait_for (0ms); if (स्थिति == std :: Future_status :: तैयार) { std :: cout मुख्य प्रवेश बिंदु() { std :: परमाणु किया (गलत); std :: थ्रेड t ([और किया] { std :: this_thread :: sleep_for (3S); किया = सच; }); // थ्रेड स्थिति की जाँच करें if (किया) { std :: cout std :: packaged_task (std :: थ्रेड के साथ)

का उपयोग करके एक और विकल्प STD :: पैक्ड_टास्क का लाभ उठाना है, जो std का उपयोग करने के लिए एक क्लीनर विकल्प प्रदान करता है :: वादा:
#include 

मुख्य प्रवेश बिंदु() {
  std :: packaged_task  कार्य ([] {{
    std :: this_thread :: sleep_for (3S);
  });
  ऑटो भविष्य = task.get_future ();

  std :: थ्रेड t (std :: मूव (कार्य));

  // थ्रेड स्थिति की जाँच करें
  ऑटो स्थिति = Future.wait_for (0ms);
  if (स्थिति == std :: Future_status :: तैयार) {
    // ...
  }

  t.join ();
…
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3