2012-06-20 27 views
5

मैं इस Simple PHP Upload with a Progress Bar का उपयोग करने जा रहा था, और यह कहता है कि मुझे एपीसी एक्सटेंशन की आवश्यकता है। मेरे पास एपीसी, थ्रेड-सुरक्षित, और गैर थ्रेड-सुरक्षित के साथ दो विकल्प हैं।क्या गैर-थ्रेड वातावरण में थ्रेड-सुरक्षित एक्सटेंशन (एपीसी) का उपयोग करने में कोई हानि है? (PHP)

phpinfo का उपयोग करके, मुझे लगता है कि थ्रेड-सुरक्षा सक्षम है, लेकिन मुझे यकीन नहीं है कि php वास्तव में mutithreaded चल रहा है या नहीं। मैंने सुना है कि php अभी भी mutithread के लिए थोड़े बीटा है।

वैसे भी, यदि मेरा PHP mutithreaded नहीं है और "थ्रेड-सुरक्षित" नहीं था, तो क्या एपीसी के थ्रेड-सुरक्षित संस्करण का उपयोग करने में समस्याएं होंगी?

टीएल; डॉ संस्करण: क्या थ्रेड-सुरक्षित एपीसी का अर्थ अधिक संगतता (दोनों PHP एकल/म्यूटिथ्रेड में काम करता है), या इसका मतलब है म्यूटिथ्रेड आवश्यक है (केवल php mutithread में काम करता है)?

+2

यदि PHP थ्रेड सुरक्षा के साथ संकलित किया गया था, तो एक्सटेंशन भी होना चाहिए। यदि PHP गैर-थ्रेड-सुरक्षित है, तो एक्सटेंशन भी होना चाहिए। विस्तार तब तक लोड नहीं किया जाएगा जब तक कि मिलान नहीं होता है, इस मामले में आपको [इस तरह की एक त्रुटि] मिल जाएगी (http://stackoverflow.com/q/3271798/185544) (टीएस/एनटीएस मेलसमूह नोट करें)। इस प्रकार, आपको थ्रेड-सुरक्षित एपीसी की आवश्यकता है। – Wiseguy

उत्तर

6

यदि मेरा PHP mutithreaded नहीं है और "थ्रेड-सुरक्षित" नहीं था, तो क्या एपीसी के थ्रेड-सुरक्षित संस्करण का उपयोग करने में समस्या होगी?

हाँ - यह काम नहीं करेगा, अवधि। थ्रेड सुरक्षा एक संकलन सेटिंग है जो PHP और स्वयं के सभी एक्सटेंशन के लिए मेल खाना चाहिए, अन्यथा उन्हें लोड नहीं किया जा सकता है। Here's an article जो बहुत विस्तार से अंतर बताता है।

नोट टीएस/NTS सेटिंग के अलावा, आप भी एक विस्तार के क्रम में मैच के लिए काम करने के लिए CPU वास्तुकला (x86 x64 बनाम) और (बनाम VC9 VC6) संकलित करने के लिए प्रयोग किया जाता है दृश्य स्टूडियो के संस्करण की आवश्यकता है कि , और एक्सटेंशन का संस्करण केवल PHP के एक निश्चित प्रमुख संस्करण के साथ काम कर सकता है।

इसका मतलब यह है कि आपके PHP इंस्टॉलेशन के साथ काम करने के लिए विस्तार की सही प्रीकंपील्ड बाइनरी प्राप्त करना बहुत कठिन हो सकता है।

-2

मैं थ्रेड-सुरक्षित संस्करण का उपयोग करने की सलाह देता हूं। जबकि गैर-थ्रेड-सुरक्षित संस्करण तेज़ हो सकता है, यदि कभी भी PHP थ्रेड (या उसके एक्सटेंशन करता है) का समर्थन करता है तो उस अतिरिक्त संगतता को एक अच्छा विचार है।

+0

कृपया माइकल बोर्गवर्ड के उत्तर - PHP के थ्रेड-सुरक्षित और गैर-थ्रेडसेफ संस्करणों को एक्सटेंशन समेत देखें, परस्पर संगत नहीं हैं। – duskwuff

+0

यूप, समझ गया। हालांकि मैंने अपना जवाब अपडेट करने के लिए परेशान नहीं किया है। –