में चल रहे धागे की गणना कैसे करें I सिनात्रा वेब सर्वर में एक थ्रेड में 'लंबे समय तक चलना' ((निष्पादित करने में लगभग 0.5 सेकंड) कार्य करना चाहते हैं।रूबी सर्वर
वेब प्रतिक्रिया के बारे में 20 एमएस लेता है, इसलिए यदि मैं व्यस्त तो धागे अप पाइल जाएगा मिलता है ...
तो मैं सोच रहा था कि मैं इसे एक समय होनेवाला बनाना अगर मैं व्यस्त हो क्या करना होगा ..
if (running_thread_count > 10)
stuff_that_takes_a_second()
else
Thread.new do
stuff_that_takes_a_second()
end
end
आप कैसे चल रहे धागे की संख्या प्राप्त करते हैं (मुझे लगता है कि थ्रेड की संख्या लॉन्च की गई है, और अभी तक नहीं चल रहा है) - आप run_thread_count को कैसे कोड करते हैं?
def running_thread_count
return Thread.list.count
end
या मैं धागे चलाने वाले के लिए जाँच करने की आवश्यकता है? यानी जब एक धागा चल रहा है, तो क्या यह थ्रेड.सूची में वापस आना बंद कर देगा?
मैं शामिल नहीं होना चाहता क्योंकि यह उद्देश्य को हरा देगा - जो तब तक वापस आना है जब तक कि हम काम करने वाले बहुत सारे धागे का समर्थन नहीं कर लेते।
लेकिन 'join' बिना, सभी धागे से बाहर निकलें, तो उनमें से एक निष्पादन पूरा करती है। 'Thread.list.count' वर्तमान में चल रहे थ्रेड की संख्या प्राप्त करता है। 'थ्रेड' में 'स्टेटस' नामक एक विधि है जो प्रक्रिया के तहत धागे के लिए' "नींद" या '" रन "लौटाती है। मैंने कोड को एक उत्तर के रूप में जोड़ा है। – Kashyap
मैंने सोचा कि एक वेब सर्वर के रूप में चल रहा एक रूबी प्रोग्राम हर समय चल रहा है, ताकि एक वेब अनुरोध के दौरान शुरू किया गया धागा पूरा हो जाएगा? –
आपके पास एक बिंदु है। अधिक प्रयोग करेंगे। धन्यवाद – Kashyap