2010-11-12 30 views
7

मेरे पास एक कोडबेस है जो pthread.h का व्यापक उपयोग करता है। एक विंडोज विजुअल स्टूडियो प्रोजेक्ट पर, यह स्पष्ट रूप से काम नहीं करता है क्योंकि pthreads एक यूनिक्स उपयोगिता है।विंडोज़ पर pthread.h का उपयोग

मुझे पता है कि वहाँ pthread-win32 या इस तरह का कुछ मौजूद है, लेकिन क्या कोई पठित कोड को बदलने के बिना कोडबेस का उपयोग करने का कोई तरीका है?

संपादित करें: मैं सभी pthread कॉलों को पार करने और बदलने की आवश्यकता नहीं है। यह मेरा प्रश्न है

+0

शायद मिनजीडब्ल्यू मदद करता है ... – Vovanium

+0

मुझे समझ में नहीं आता है। आप कहते हैं कि आप जानते हैं कि Win32 के लिए एक pthread लाइब्रेरी मौजूद है, तो आप इसका उपयोग क्यों नहीं करते? – jalf

उत्तर

5

http://sourceware.org/pthreads-win32/ आज़माएं। हालांकि मैंने कभी भी उस विशेष पुस्तकालय का उपयोग नहीं किया है, लेकिन मैंने पॉज़िक्स एपीआई के कुछ विंडोज पोर्ट्स/एब्स्ट्रक्शन लेयर का उपयोग करके भाग्य प्राप्त किया है।

5

मैं एक लाइब्रेरी के रूप में बढ़ावा देने की अनुशंसा करता हूं जिसमें एक मंच-स्वतंत्र धागा अमूर्तता है। मुझे नहीं लगता कि आपको संतुष्ट होने के लिए खुद को पर्थ्रेड कार्यों को कॉल करने का कोई भी प्रयास मिलेगा। अपने लिए Win32 पर pthread मैप करना भी बहुत मुश्किल नहीं है।

+0

+1 हमेशा बढ़ावा का उपयोग करें। – SingleNegationElimination

+4

किसी ऐसे व्यक्ति के लिए बहुत उपयोगी नहीं है जिसके पास मौजूदा कोड बेस है जो थ्रेडिंग कोड का उपयोग कर रहा हो, जहां वे थ्रेडिंग कोड को फिर से लिखना पसंद नहीं करते हैं। :) – jalf

+0

मैंने इसे कई बार किया है। एक कारण के लिए वैश्विक खोज/प्रतिस्थापन का आविष्कार किया गया था। – bmargulies

2

यदि कोड बहुत भारी * निक्स-आधारित है, तो शायद आपके पास Cygwin + GCC के साथ संकलित करने का सबसे अच्छा भाग्य होगा। यदि pthreads केवल * निक्स निर्भरता है और आप सिग्विन निर्भरता से बचना चाहते हैं, तो आपको Pthreads-win32 के साथ जाना चाहिए।

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