POSIX मानक pthread_setschedparam(3)
के रूप में विभिन्न अन्य उत्तर ने उल्लेख भी शामिल है,। अधिकांशतः इस पॉज़िक्स थ्रेड लाइब्रेरी फ़ंक्शन का उल्लेख वास्तविक समय के थ्रेड की बात करते समय किया जाता है, लेकिन POSIX मानक वास्तविक रूप से रीयल-टाइम थ्रेड के डोमेन पर इसका उपयोग सीमित नहीं करता है। हालांकि, लिनक्स में इसका उपयोग केवल वास्तविक अर्थपूर्ण है यदि रीयल टाइम शेड्यूलिंग क्लासेस SCHED_FIFO
या SCHED_RR
का उपयोग कर रहे हैं क्योंकि केवल शेड्यूलिंग क्लासेस प्राथमिकता पैरामीटर के लिए एक से अधिक मान की अनुमति देते हैं। एक उदाहरण के लिए यह stack overflow answer देखें।
सौभाग्य से या दुर्भाग्यवश, यह परिप्रेक्ष्य का विषय है, ऐसा लगता है कि मुख्य धारा लिनक्स पॉज़िक्स थ्रेड लाइब्रेरी कार्यान्वयन (अप्रचलित लिनक्स थ्रेड और वर्तमान एनपीटीएल कार्यान्वयन) दोनों पूरी तरह से POSIX अनुरूप नहीं हैं कि "अच्छा मूल्य" प्रक्रिया नहीं है विशिष्ट लेकिन थ्रेड विशिष्ट पैरामीटर, इसलिए ऐसा लगता है कि आप लिनक्स में थ्रेड की अच्छीता को बदलने के लिए setpriority(3)
का उपयोग कर सकते हैं। यह दावा संगतता नोट्स पर आधारित है pthreads(7)
मैनुअल पेज (उस पृष्ठ में "अच्छा मूल्य" खोजें); मैंने वास्तव में अभ्यास में परीक्षण नहीं किया है (करने के लिए सीधी चीज)।
क्या आप थॉमस अच्छीता को बदलने के POSIX के असंगत तरीके का उपयोग करने का निर्णय लेना चाहते हैं, ध्यान दें कि कोई आश्चर्यजनक संभावना है कि कोई भी उल्लिखित गैर-अनुपालन को ठीक करने का निर्णय लेता है, इस मामले में धागे को बदलने का कोई तरीका नहीं लगता है सामान्य शेड्यूलिंग क्लास (SCHED_OTHER
) का उपयोग करते हुए लिनक्स में प्राथमिकता।
आप 'pthread_attr_getschedpolicy के लिए एक uninitialised' pthread_attr_t' के लिए सूचक पारित नहीं हो सकता() '। – caf
@caf संकेत के लिए धन्यवाद। मैंने कोड स्निपेट अपडेट किया है। –
ध्यान दें कि हालांकि POSIX मानक (प्रदान किए गए 'phtread__setschedprio (3)' मैन्युअल पृष्ठ से http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_08 पर दिए गए लिंक के बाद।एचटीएमएल # टैग_02_08_04_01) लिनक्स में 'SCHED_OTHER' नीति में चल रहे धागे के लिए 'pthread_setschedprio (3)' का उपयोग करने का उल्लेख करता है, प्राथमिकता मान के लिए मान सीमा '[0, 0] है, जो इस उत्तर को लिनक्स के लिए बेकार बना देती है, जब तक कि वास्तविक उपयोग नहीं किया जाता समय सारिणी कक्षाएं ('SCHED_FIFO' या' SCHED_RR') जो प्रश्न से अनिश्चित हैं। – FooF