मैं सी में एक साझा लाइब्रेरी लिख रहा हूं। मुझे पता है कि सी फ़ंक्शन थ्रेड सुरक्षित नहीं हैं।एक सी लाइब्रेरी थ्रेड सुरक्षित बनाना
मेरे पुस्तकालय दिनचर्या लग रहा है हर विधि lib_handle
वस्तु के लिए एक सूचक लेता है की तरह,
struct lib_handle {
....
};
int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....
। सभी राज्य इस संरचना के अंदर संग्रहीत हैं। कोई वैश्विक चर का उपयोग नहीं किया जाता है।
मुझे लगता है कि प्रत्येक थ्रेड अपने स्वयं के lib_handle
उदाहरण बनाता है, एकाधिक थ्रेड लाइब्रेरी फ़ंक्शंस का उपयोग कर सकते हैं। चूंकि प्रत्येक धागे का अपना संभाल होता है, इसलिए प्रत्येक व्यक्ति को काम करना चाहिए।
मैंने अभी तक इस धारणा को मान्य नहीं किया है। मैं सोच रहा हूं कि आप इस डिजाइन के बारे में क्या सोचते हैं और क्या आप बात करते हैं कि मैं अपनी लाइब्रेरी को थ्रेड सुरक्षित के रूप में बता सकता हूं कि प्रत्येक धागे के पास हैंडल हैं?
कोई भी मदद महान होगी!
यह लाइब्रेरी SQLite के अलावा किसी भी पुस्तकालय का उपयोग नहीं कर रही है। SQLite स्वयं धागा सुरक्षित है। –
हे, +1, आखिर में एक समझदार सवाल। –