असल में मैं इस बीट डिटेक्शन एल्गोरिदम पर काम कर रहा हूं, अजीब चीज़ जो मैं अभी सामना कर रहा हूं वह यह है कि जब मैं वर्क लोड को किसी अन्य थ्रेड पर विभाजित करता हूं। तो अब मेरे पास एक मुख्य धागा और एक और कार्यकर्ता धागा है। मेरा कार्यकर्ता धागा किसी भी तरह से मुख्य धागे की तुलना में तेज़ी से काम कर रहा है। यह अजीब लगता है क्योंकि मैंने जो सीखा है वह मुख्य धागा सैद्धांतिक रूप से हमेशा तेज होना चाहिए क्योंकि इसमें धागे को शुरू करने में समय नहीं लग रहा है। हालांकि मुझे जो भी मिलता है वह भी है कि मैं कार्यकर्ता थ्रेड के लिए अतिरिक्त 1024 नमूने पास करता हूं (वे वर्तमान में लगभग 30 मिलियन नमूने के साथ काम कर रहे हैं) यह मुख्य धागे से अभी भी तेज़ है। क्या ऐसा इसलिए है क्योंकि मेरे पास मेरे मुख्य धागे पर चल रहे अनुप्रयोग हैं? मैं अभी वास्तव में उलझन में हूँ। यहां कोडसी # मल्टीथ्रेडिंग अजीब व्यवहार
UnityEngine.Debug.Log ("T800 Start");
Step3 s1= new Step3();
Step3WOMT s2= new Step3WOMT();
System.Object tempObj= samples2 as System.Object;
float[] tempArray = new float[eS.Length/ 2];
System.Threading.ParameterizedThreadStart parameterizedts = new System.Threading.ParameterizedThreadStart(s1.DoStep3);
System.Threading.Thread T1 = new System.Threading.Thread(parameterizedts);
T1.Start (tempObj);
s2.DoStep3(samples1);
UnityEngine.Debug.Log ("s2");
//UnityEngine.Debug.Log (stopwatch.ElapsedMilliseconds);
T1.Join();
चिंता न करें मैं केवल मल्टीथ्रेड में सी # सुविधाओं का उपयोग कर रहा हूं, इसलिए मुझे विश्वास है कि यह ठीक होना चाहिए। मैं वास्तव में उलझन में हूं कि अगर मैं T1.join() को टिप्पणी करता हूं; पूरी चीज को किसी भी तरह धीमा कर दें। मैं वास्तव में अभी उलझन में हूं क्योंकि इस सवाल का कोई उचित जवाब नहीं है।
निश्चित रूप से, यदि एक धागा एक ही तर्क को दूसरे से तेज़ी से निष्पादित करता है तो ऐसा होता है क्योंकि उस धागे पर कम "प्रवेश" होता है। डब्ल्यूपीएफ (नेट) में। एफ। छेद यूआई मुख्य धागे पर होस्ट किया जाता है और एप्लिकेशन डिफ़ॉल्ट रूप से उस थ्रेड पर चलता है। उस ज्ञान के साथ अक्सर थ्रेड में वर्कलोड को साझा करने के लिए बहु-थ्रेडेड अनुप्रयोगों को बनाने के लिए समझदारी होती है ताकि उन्हें और अधिक करने की अनुमति मिल सके - या एक ही काम के लिए कम समय को कम करें। –
हालांकि यह एक पागल बड़ा सौदा नहीं है 1503 मिलीसेकंड बनाम 1481 मिलीसेकंड, यह सिर्फ अजीब तरह का है। इसके अलावा वर्कर थ्रेड ऑब्जेक्ट को वापस फ्लोट करने के लिए ऑब्जेक्ट के रूप में भी कर रहा है []। तो क्या यह हमेशा मुख्य धागे से धीमा नहीं होना चाहिए? –
'1503' और' 1481' एमएस के बीच वास्तव में कोई व्यावहारिक अंतर नहीं है। मुझे यह देखने में दिलचस्पी होगी कि आप अपना समय कैसे कर रहे हैं - शायद इसका असर भी हो। – Enigmativity