तो क्या मैं अंत में करने के लिए कोशिश कर रहा हूँ एक पंक्ति पढ़ने के लिए है, कि लाइन में जानकारी के साथ कुछ गणना करते हैं, तो कुछ वैश्विक वस्तु के लिए परिणाम जोड़ने के लिए, लेकिन मैं इसे पाने के लिए प्रतीत नहीं कर सकते हैं काम करने के लिए। उदाहरण के लिए, नीचे दिए गए कोड में परीक्षण हमेशा 0 होता है। मुझे पता है कि यह गलत है, और मैंने इसे अन्य तरीकों से करने की कोशिश की है, लेकिन यह अभी भी काम नहीं कर रहा है।वैश्विक चर बदल रहा है जब अजगर में बहु
import multiprocessing as mp
File = 'HGDP_FinalReport_Forward.txt'
#short_file = open(File)
test = 0
def pro(temp_line):
global test
temp_line = temp_line.strip().split()
test = test + 1
return len(temp_line)
if __name__ == "__main__":
with open("HGDP_FinalReport_Forward.txt") as lines:
pool = mp.Pool(processes = 10)
t = pool.map(pro,lines.readlines())
वैश्विक आम तौर पर एक संकेत है कि आप कुछ गलत कर रहे हैं। मैं सलाह देता हूं कि आपका प्रोग्राम उनसे बचने के लिए कैसे काम करता है - यह आपको लंबे समय तक सिरदर्द बचाएगा, और हमेशा एक बेहतर तरीका है। –
बहु मॉड्यूल की बात यह है कि यह एक ही प्रक्रिया में धागे बच्चे प्रक्रियाओं के बजाय spawns, सभी सामान्य तालमेल के साथ है। दुर्भाग्यवश, प्रलेखन उन ट्रेडऑफों को बिल्कुल समझाता नहीं है, मानते हैं कि आप उन्हें पहले ही जानते होंगे। आप "प्रोग्रामिंग दिशा निर्देशों" दस्तावेज में का अनुसरण हैं, तो आप समझ नहीं के साथ भाग मिल सकता है, लेकिन क्या तुम सच में सीखना चाहिए। – abarnert