2011-12-22 13 views
5

मुझे एक पायथन फ़ंक्शन पर समय सीमा निर्धारित करने की आवश्यकता है जो कुछ मल्टीप्रोसेसिंग सामग्री का उपयोग करती है (मुझे नहीं पता कि यह महत्वपूर्ण है या नहीं)। कुछ इस तरह:एक मल्टीप्रोसेसिंग फ़ंक्शन का समय

function(a_list): 

    p1 = Process(a_list[0:len(a_list/2)]) 
    p2 = Process(a_list[len(a_list)/2: len(a_list)]) 

    //start and join p1, p2 

मैं नेट के आसपास देखने के लिए और मैं एक समय के लिए बाहर डेकोरेटर पाया लेकिन यह काफी मुश्किल और वर्बोज़ (मैं सज्जाकार पर नौसिखिया हूँ) लग रहा है। मैं जो चाहता हूं वह एक साधारण बात है।

संपादित करें:

मुझे लगता है कि मैंने इसे बहुत आसान बना दिया है। ऊपर समारोह और इस प्रकार की सूची कुछ में दुकान परिणाम पर मेरे कार्यक्रम दोहराता:

while(something): 

    retval = function(some_list) # here I need the time out thing 

    # if function timed out then skip 

    ris_list.append(retval) 

उत्तर

11

आप ऐसा करने में सक्षम होना चाहिए कि इस कोड के साथ:

process.join(timeout) 
if process.is_alive(): 
    process.terminate() 

तो बजाय में एक समय-समाप्ति सेट फ़ंक्शन, आप प्रक्रिया के समय के साथ शामिल हो सकते हैं और यदि उस टाइमआउट के बाद प्रक्रिया समाप्त नहीं हुई है, तो इसे समाप्त करें।

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