में साझा वैरिएबल इसलिए मैंने पिछले सेमेस्टर में ओएस क्लास लिया और हमारे पास एक समवर्ती/थ्रेडिंग प्रोजेक्ट था। यह एक हवाई अड्डे का सिम था जो विमानों से उतरा था/उन्हें हवा में उड़ने वाली दिशा में ले जाया गया था। हमें जावा में ऐसा करना था। तो अब यह खत्म हो गया है और मैं ऊब गया हूं, मैं इसे सी ++ 11 में करने की कोशिश कर रहा हूं। जावा में मैंने मुख्य रूप से हवा (0 - 360) के लिए सिंक्रनाइज़ वैरिएबल का उपयोग किया और इसे इस्तेमाल किए गए 3 धागे तक पारित कर दिया। मेरा सवाल है: क्या आप इसे सी ++ 11 में कर सकते हैं? यह एक मूल पाठक/लेखक है, एक थ्रेड हवा लिखता है/अपडेट करता है, दूसरा 2 (टेकऑफ/भूमि) पढ़ता है।सी ++ 11
मुझे यह मेरी "threads.cpp" कार्यान्वयन फ़ाइल में वैश्विक पवन चर रखने के द्वारा काम कर रहा है। लेकिन क्या एक वैरिएबल को जितने चाहें उतने धागे को पास करने का कोई तरीका है और वे सभी इसके साथ रहते हैं? या क्या यह वास्तव में मेरे लिए ग्लोबल वैरिएबल का उपयोग करना और कुछ भी पास नहीं करना बेहतर है? (क्यों/क्यों नहीं?) मैं std::ref()
पर देख रहा था लेकिन यह काम नहीं करता था।
संपादित करें: मैं पहले से ही mutex और lock_guard का उपयोग कर रहा हूं। मैं बस यह पता लगाने की कोशिश कर रहा हूं कि सभी थ्रेडों में एक चर को अद्यतित कैसे करें और अद्यतित रखें। अभी यह केवल लेखन धागे में अपडेट होता है।
हाँ, यह वही है जो मैं करने की कोशिश कर रहा था! ऐसा लगता है कि यह एक दर्द का अधिक है, फिर वैश्विक वैरिएबल का उपयोग करते हुए। क्या इस तरह से ऐसा करने के लिए कोई +/- है? – lciamp
खैर, ज्यादातर लोग वैश्विक चर को ज्यादातर समय खराब अभ्यास मानते हैं। कम से कम परीक्षण करना मुश्किल बनाता है। –