2011-10-21 11 views
5

डॉक्स यहाँ में: http://www.sqlite.org/threadsafe.htmlSQLite के धारावाहिक मोड

धारावाहिक मोड के लिए यह कहते हैं: "धारावाहिक मोड में, SQLite सुरक्षित रूप से कोई प्रतिबंध के साथ एक से अधिक थ्रेड द्वारा इस्तेमाल किया जा सकता है।"

मैं यह सुनिश्चित करना चाहता हूं कि मैं वहां प्रस्तुत गारंटी को समझूं। यदि "SQLITE_OPEN_FULLMUTEX" ध्वज का उपयोग करके एक एकल डेटाबेस कनेक्शन खोला जाता है और साथ ही दो थ्रेड एक ही इंस्टेंट पर sqlite3_exec को कॉल करने का प्रयास करते हैं, तो क्या स्क्लाइट स्वचालित रूप से कॉल को क्रमबद्ध करता है?

उत्तर

4

उत्तर हाँ है। sqlite3_exec() फ़ंक्शन दर्ज होने पर एक म्यूटेक्स ले जाएगा और फ़ंक्शन छोड़े जाने के बाद म्यूटक्स्ट को रिलीज़ करेगा। किसी भी समय केवल एक धागा म्यूटेक्स का मालिक हो सकता है, इसलिए किसी भी समय केवल एक धागा sqlite3_exec() निष्पादित कर सकता है। यदि दो धागे एक ही समय में sqlite3_exec() निष्पादित करने का प्रयास करते हैं, तो कोई दूसरे की प्रतीक्षा करेगा।

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