2010-10-22 12 views
5

मैं के रूप में यहां प्रस्तावित सी में एक घटना चालित परिमित राज्य मशीन मॉडल बनाना चाहते हैं: http://en.wikipedia.org/wiki/Event-driven_finite_state_machineघटना-संचालित परिमित राज्य मशीन + धागे: कैसे करें?

लेकिन मैं यह भी 'बाहरी' की घटनाओं जैसे विभिन्न धागे में नियंत्रित किया जाना होगा।

क्या मुझे ऐसा कोड कहीं मिल सकता है? या सलाह?

उत्तर

6

संदेश कतार आपकी समस्या का समाधान करने का एक तरीका है।

यदि आप अन्य राज्यों से बाहरी घटनाओं के साथ अपनी राज्य मशीन को खिलाना चाहते हैं, तो वे इन घटनाओं को एक संदेश कतार में लिख सकते हैं जो आपकी राज्य मशीन द्वारा पढ़ा जाएगा।

यदि आप चाहते हैं कि अन्य थ्रेड आपकी राज्य मशीन से कार्रवाइयों पर ट्रिगर करें, तो यह प्रत्येक एमक्यू से पढ़े गए थ्रेड से जुड़े विभिन्न संदेश कतारों को लिख सकता है।

एक दोष यह है कि घटनाक्रम कालक्रम में क्रमबद्ध हो जाती है। यदि आपकी स्टेट मशीन घटना को संभालने के मूड में नहीं है तो यह कतार से पढ़ी जाती है, आपको यह तय करना होगा कि इस घटना के साथ क्या करना है: इसे नष्ट करें, इसे कतार में वापस रखें, इसे भविष्य के उपयोग के लिए याद रखें ...

+0

मैंने ईवेंट ऑर्डर के बारे में आपके अंतिम पैराग्राफ के साथ पढ़ा है। क्या आप किसी भी मौके से मुझे राज्य मशीनों में घटना कतार में हेरफेर के बारे में उदाहरणों, स्रोतों या लेखों की ओर इशारा करते हैं? – BiAiB

5

हो सकता है कि क्वांटम फ्रेमवर्क आप जो खोज रहे हैं? अधिक जानकारी के लिए http://state-machine.com/ देखें। कई microcontrollers के साथ ही लिनक्स और खिड़कियों के लिए बंदरगाह हैं।

+0

हाय स्क्वाकी स्क्वायरल। हां, मैंने इस साइट और इसकी पुस्तक भी खोज ली है। दिलचस्प है! धन्यवाद। जेसीएलएल – JCLL

+0

मैं धागे के साथ और बिना दोनों वाणिज्यिक वातावरण में क्यूएफ का उपयोग कर रहा हूं। यह पहली बार अजीब था, लेकिन अब मैं किसी अन्य तरीके से सुरक्षा-महत्वपूर्ण कोड लिखने की कल्पना नहीं कर सकता। सबसे अधिक कार्यान्वयन के विपरीत, क्यूपीसी को बड़ी गड़बड़ी के बिना अच्छी तरह से स्केल करने के लिए डिज़ाइन किया गया है। –

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