擅长:python、mysql、java
<p>现在的问题是,父线程完成了,但是没有检查是否还有子线程仍在运行,这些子线程以这种方式被静默地终止!我建议采取以下办法:</p>
<p>使用<code>import threading</code>代替<code>import thread</code></p>
<p>更改线程代码:</p>
<pre><code>thread.start_new_thread(saveData,(slice1, slice2, slice3, dset))
</code></pre>
<p>至</p>
<pre><code>threads_running = [] # keep track of your threads
# thread starting loop
for i in xrange(48): # in this case xrange is what you really want!
... # do your data preparations here (slice, etc.)
thread = threading.Thread(target=saveDate,
args=(slice1, slice2, slice3, dset))
thread.start()
threads_running.append(thread) # "register" the running thread
# thread waiting to finish loop
while threads_running:
thread = thread_lst[i]
thread.join(0.1) # wait 0.1 second for thread to finish
if thread.is_alive(): # else check next thread
continue
else:
print "Thread %s finished" % threads_running.pop(i)
</code></pre>
<p>类似的回答是<a href="https://stackoverflow.com/q/11968689/1107807">question</a>。你知道吗</p>