Aspose.Slides for PHP via Java में मल्टीथ्रेडिंग
परिचय
जबकि प्रस्तुति के साथ समानांतर कार्य संभव है (पार्सिंग/लोडिंग/क्लोनिंग के अलावा) और अधिकांश समय सब ठीक चलता है, फिर भी एक छोटी संभावना है कि लाइब्रेरी को कई थ्रेड में उपयोग करने पर आपको गलत परिणाम मिल सकते हैं।
हम दृढ़ता से अनुशंसा करते हैं कि आप मल्टी-थ्रेडिंग वातावरण में एक ही Presentation इंस्टेंस का उपयोग न करें क्योंकि इससे अप्रत्याशित त्रुटियां या विफलताएँ हो सकती हैं जिन्हें आसानी से पता नहीं लगाया जा सकता।
कई थ्रेड में Presentation क्लास के एक इंस्टेंस को लोड, सेव या क्लोन करना सुरक्षित नहीं है। ऐसे ऑपरेशनों को समर्थन नहीं किया जाता। यदि आपको ऐसे कार्य करने हैं, तो आपको कई सिंगल-थ्रेडेड प्रोसेसेज़ का उपयोग करके ऑपरेशनों को समानांतर करना होगा—और इन प्रोसेसेज़ में प्रत्येक को अपना स्वयं का प्रस्तुति इंस्टेंस उपयोग करना चाहिए।
PHP में एक्सटेंशन का उपयोग करते समय हम मल्टीथ्रेडिंग की गारंटी नहीं देते। यदि आप उन्हें उपयोग करते हैं, तो अपनी स्वयं की जोखिम पर करें।
अक्सर पूछे जाने वाले प्रश्न
क्या मुझे प्रत्येक थ्रेड में लाइसेंस सेटअप कॉल करना आवश्यक है?
नहीं। थ्रेड प्रारम्भ होने से पहले प्रक्रिया/ऐप डोमेन में एक बार यह करना पर्याप्त है। यदि लाइसेंस सेटअप समानांतर रूप से बुलाया जा सकता है (उदाहरण के लिये, आलसी इनिशियलाइज़ेशन के दौरान), तो उस कॉल को समन्वयित करें क्योंकि लाइसेंस सेटअप मेथड स्वयं थ्रेड-सेफ़ नहीं है।
क्या मैं Presentation या Slide ऑब्जेक्ट्स को थ्रेड्स के बीच पास कर सकता हूँ?
थ्रेड्स के बीच “लाइव” प्रस्तुति ऑब्जेक्ट्स को पास करना सिफ़ारिश नहीं किया जाता: प्रत्येक थ्रेड के लिए स्वतंत्र इंस्टेंस का उपयोग करें या प्रत्येक थ्रेड के लिए अलग-अलग प्रस्तुति/स्लाइड कंटेनर पहले से बनाकर रखें। यह दृष्टिकोण सामान्य सिफ़ारिश के अनुसार एक ही प्रस्तुति इंस्टेंस को थ्रेड्स में साझा नहीं करने की सलाह देता है।
क्या प्रत्येक थ्रेड के पास अपना Presentation इंस्टेंस हो, तो विभिन्न फॉर्मेट्स (PDF, HTML, images) में एक्सपोर्ट को समानांतर करना सुरक्षित है?
हाँ। स्वतंत्र इंस्टेंस और अलग आउटपुट पाथ के साथ, ऐसे कार्य सामान्यतः सही ढंग से समानांतर होते हैं; किसी भी साझा प्रस्तुति ऑब्जेक्ट और साझा I/O स्ट्रीम से बचें।
मल्टीथ्रेडिंग में ग्लोबल फ़ॉन्ट सेटिंग्स (फ़ोल्डर, सब्स्टीट्यूशन्स) के साथ मुझे क्या करना चाहिए?
थ्रेड्स शुरू करने से पहले सभी ग्लोबल फ़ॉन्ट सेटिंग्स को इनिशियलाइज़ करें और समानांतर कार्य के दौरान उन्हें न बदलें। इससे साझा फ़ॉन्ट संसाधनों तक पहुँचते समय होने वाली रेस स्थितियों को समाप्त किया जा सकता है।