2010-05-27 25 views
15

PHP में लॉक करने के बारे में कुछ ग्रंथ पढ़ें।
वे सभी, मुख्य रूप से, http://php.net/manual/en/function.flock.php पर सीधे।PHP पारस्परिक बहिष्करण (mutex)

यह पृष्ठ हार्ड डिस्क पर फ़ाइल खोलने के बारे में बात करता है !!

क्या वाकई ऐसा है? मेरा मतलब है, यह लॉकिंग वास्तव में महंगा बनाता है - इसका मतलब है कि हर बार जब मैं लॉक करना चाहता हूं तो मुझे हार्ड डिस्क तक पहुंचना होगा) =

अब मुझे एक सुखद समाचार के साथ आराम दे सकता है?

संपादित करें:

कारण कुछ उत्तर मैं यहाँ मिल गया है करने के लिए, मैं इस पूछना चाहता हूँ;
मेरी स्क्रिप्ट केवल एक धागे से चलती है, या कई? क्योंकि अगर यह एक के द्वारा है तो मुझे स्पष्ट रूप से एक म्यूटेक्स की आवश्यकता नहीं है। क्या कोई संक्षिप्त उत्तर है?

वास्तव में मुझे क्या करना

ircmaxell द्वारा पूछे जाने पर कोशिश कर रहा हूँ
यह कहानी है:

मेरे पास दो FTP सर्वर हैं। मैं अपनी वेबसाइट पर दिखाने में सक्षम होना चाहता हूं कि कितने ऑनलाइन उपयोगकर्ता ऑनलाइन हैं।
तो, मैंने सोचा कि ये FTP सर्वर अपने आंकड़े एक निश्चित PHP स्क्रिप्ट पेज पर "पोस्ट" करेंगे। आइए मान लें कि इस पृष्ठ का यूआरएल "http://mydomain.com/update.php" है।

वेबसाइट के मुख्य पृष्ठ पर ("http://mydomain.com/index.php") मैं संचयी आंकड़े (ऑनलाइन उपयोगकर्ता) प्रदर्शित करूंगा।

यही है।

मेरी समस्या यह है कि मुझे यकीन नहीं है कि, जब एक FTP सर्वर अपने आंकड़ों को अपडेट करता है, जबकि दूसरा यह भी करता है, तो जानकारी मिश्रित हो जाएगी।
बहु-थ्रेडिंग की तरह; दो धागे एक ही समय में कुछ "int" चर को बढ़ाते हैं। यह तब तक नहीं होगा जब तक कि आप उनके बीच सिंक न हों।
तो, क्या मुझे कोई समस्या होगी? हां नहीं शायद?

संभव समाधान

इसके बारे में सोच रही थी मुश्किल दिन भर, मैं एक विचार यहाँ है और मैं आप अपनी राय देना चाहते हैं।
जैसा कि कहा गया है कि इन ftp सर्वर प्रत्येक 60sec में एक बार अपने आंकड़े पोस्ट करेंगे।
मैं इस फ़ाइल को "figures.php" रखने के बारे में सोच रहा हूं।
इसे अद्यतन स्क्रिप्ट पर शामिल किया जाएगा कि ftp सर्वर ("update.php") और "index.php" पृष्ठ पर जाते हैं जहां आगंतुक देखते हैं कि कितने उपयोगकर्ता ऑनलाइन हैं।
अब, जब कोई FTP सर्वर अपडेट होता है, तो "update.php" पर स्क्रिप्ट नए संचयी आंकड़ों के साथ "stats.php" को संशोधित करेगी।
सबसे पहले यह "figures.php" पर शामिल आंकड़े पढ़ेगा, फिर जमा होगा, और फिर उस फ़ाइल को फिर से लिख देगा।

यदि मुझे गलत नहीं लगता है तो PHP पता लगाएगा कि फ़ाइल ("figures.php") बदल दी गई है और नया लोड किया गया है। सही बात?

+0

क्या PHP भी थ्रेडिंग का समर्थन करता है? PHP एपीआई के माध्यम से देखकर मुझे कुछ भी दिखाई नहीं देता जो थ्रेड से संबंधित प्रतीत होता है ... – tloach

+0

किसी कारण से मैंने सोचा कि PHP थ्रेडिंग का समर्थन करता है, इस तरह से यह कई क्लाइंटों के लिए एक ही स्क्रिप्ट निष्पादित करेगा। – Poni

+0

तो मेरे पास एक स्थिर चर है जिसमें कुछ डेटा होगा, जो कई स्रोतों द्वारा अपडेट किया जाता है और कई ग्राहकों को खिलाया जाता है। यह एक साथ हो सकता है इसलिए मुझे सिंक करने के लिए कुछ रास्ता चाहिए। – Poni

उत्तर

संबंधित मुद्दे