किसी अन्य थ्रेड को स्पॉन करने के लिए, आपको थ्रेड मॉड्यूल में उपलब्ध निम्न विधि को कॉल करने की आवश्यकता है -
thread.start_new_thread ( function, args[, kwargs] )
यह विधि कॉल Linux और Windows दोनों में नए थ्रेड बनाने का तेज़ और कुशल तरीका सक्षम करता है।
विधि कॉल तुरंत वापस आती है और बाल धागा शुरू होता है और तर्कों की पारित सूची के साथ कार्य करता है। जब फ़ंक्शन वापस आता है, तो थ्रेड समाप्त हो जाता है।
यहाँ, args तर्कों का एक समूह है; किसी भी तर्क को पारित किए बिना फ़ंक्शन को कॉल करने के लिए खाली टुपल का उपयोग करें। kwargs कीवर्ड तर्कों का एक वैकल्पिक शब्दकोश है।
उदाहरण
#!/usr/bin/python
import thread
import time
# Define a function for the thread
def print_time( threadName, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print "%s: %s" % ( threadName, time.ctime(time.time()) )
# Create two threads as follows
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
हालांकि यह निम्न-स्तरीय थ्रेडिंग के लिए बहुत प्रभावी है, लेकिन नए थ्रेडिंग मॉड्यूल की तुलना में थ्रेड मॉड्यूल बहुत सीमित है।