एक और थ्रेड उत्पन्न करने के लिए, आपको thread मॉड्यूल में उपलब्ध निम्नलिखित विधि को कॉल करना होगा -
thread.start_new_thread ( function, args[, kwargs] )
यह विधि कॉल लिनक्स और विंडोज दोनों में नए थ्रेड बनाने का एक तेज़ और कुशल तरीका सक्षम करती है।
विधि कॉल तुरंत लौटती है और चाइल्ड थ्रेड शुरू होता है और पास की गई args सूची के साथ फ़ंक्शन को कॉल करता है। जब फ़ंक्शन लौटता है, तो थ्रेड समाप्त होता है।
यहां, args आर्गुमेंट्स का एक टुपल है; फ़ंक्शन को बिना कोई आर्गुमेंट पास किए कॉल करने के लिए एक खाली टुपल का उपयोग करें। kwargs कीवर्ड आर्गुमेंट्स का एक वैकल्पिक डिक्शनरी है।
उदाहरण
#!/usr/bin/python import thread import time # थ्रेड के लिए एक फ़ंक्शन परिभाषित करें def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadName, time.ctime(time.time()) ) # दो थ्रेड इस प्रकार बनाएं try: thread.start_new_thread( print_time, ("Thread-1", 2, ) ) thread.start_new_thread( print_time, ("Thread-2", 4, ) ) except: print "Error: unable to start thread" while 1: passआउटपुट
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम देता है -
Thread-1: Thu Jan 22 15:42:17 2009 Thread-1: Thu Jan 22 15:42:19 2009 Thread-2: Thu Jan 22 15:42:19 2009 Thread-1: Thu Jan 22 15:42:21 2009 Thread-2: Thu Jan 22 15:42:23 2009 Thread-1: Thu Jan 22 15:42:23 2009 Thread-1: Thu Jan 22 15:42:25 2009 Thread-2: Thu Jan 22 15:42:27 2009 Thread-2: Thu Jan 22 15:42:31 2009 Thread-2: Thu Jan 22 15:42:35 2009
हालांकि यह निम्न-स्तरीय थ्रेडिंग के लिए बहुत प्रभावी है, लेकिन thread मॉड्यूल नए थ्रेडिंग मॉड्यूल की तुलना में बहुत सीमित है।