सरल अध्ययन किया जाता है: चींटी जीवन सिमुलेशनचींटी सिमुलेशन: प्रत्येक चींटी या कुछ और के लिए प्रक्रिया/थ्रेड बनाना बेहतर है?
मैं एक OO संरचना कि बांबी, चींटी के लिए एक कक्षा और पूरे सिम्युलेटर के लिए एक कक्षा के लिए एक कक्षा को देखने बना रहा हूं।
अब मैं "कैसे" बनाने पर विचार विमर्श कर रहा हूँ चींटियों 'जी' ...
मुझे पता है कि यह सिर्फ शुरू किया, लेकिन मैं कर रहा हूँ बुद्धिशीलता जैसी परियोजनाओं हैं कि, मैं कर रहा हूँ नहीं की तलाश में एक बस तैयार करने के लिए खाने-पकवान।
ईमानदारी से मुझे "बेहतर क्या है", पीएथॉन में AFAIK थ्रेड, समझने के लिए कुछ परीक्षण करना है, प्रक्रियाओं की तुलना में कम स्मृति का उपयोग करें।
सिमुलेशन शुरू करते समय "चींटियों" को क्या करना है बस: यादृच्छिक दिशा के साथ घूमना, अगर उन्हें खाना मिल जाता है -> खाने/खाने के लिए लाएं, अगर उन्हें भोजन की परिवहन करने वाली किसी अन्य चीज से दूसरी चींटी मिलती है -> हमला -> भोजन इकट्ठा करें -> क्या करना है .... और इसी तरह ... इसका मतलब है कि मुझे चींटियों और पूरे वातावरण में जानकारी "साझा" करना है।
इसलिए मैं फिर से लिखता हूं: प्रत्येक चींट या किसी और चीज के लिए प्रक्रिया/थ्रेड बनाना बेहतर है?
संपादित करें: मेरे प्रश्न "बेहतर क्या है" के कारण, मैं प्राप्त किए गए सभी स्मार्ट उत्तरों को उखाड़ फेंक दूंगा, और मैंने उन पर भी एक टिप्पणी की। मेरे परीक्षणों के बाद, मैं सबसे अच्छा जवाब स्वीकार करूंगा।
प्रति चींटी एक पूर्ण धागा ओवरकिल लगता है। वे प्रक्रियाओं से सस्ता हैं, हाँ, लेकिन उनके पास अभी भी * कुछ * ओवरहेड है (यदि केवल संदर्भ स्विचिंग) और सीपीथॉन में वे समानांतर में भी नहीं चल सकते हैं (और यदि वे कर सकते हैं, तब भी, आप अभी भी सीमित हैं कोर का नंबर)। – delnan
प्रक्रियाओं और धागे की सापेक्ष लागत अंतर्निहित ओएस पर भी निर्भर होगी। मैं @ डेलनान से सहमत हूं: प्रति थ्रेड एक थ्रेड ओवरकिल है और प्रति चींटी एक प्रक्रिया थर्मोन्यूक्लियर ओवरकिल है। –
आप दोनों को धन्यवाद (थर्मोन्यूक्लियर ओवरकिल के लिए एलओएल), आप क्या सुझाव देते हैं? – MiPnamic