在python 3中停止或暂停线程

时间:2013-11-28 18:19:50

标签: multithreading python-3.3 thread-sleep

我有一个包含x个线程(t [])的列表。我想无限期地停止或杀死或暂停它们。我该怎么做?如果我必须使用time.sleep,我该怎么做,让列表中的每个线程都睡眠?

def downNow(d): #A function to download a file
step = d.size//d.noOfThreads        
init= 0
for i in range(d.noOfThreads-1):
    d.thread_list.append(DownloadThread.D_thread(DownloadThread.download_file, (init, step, d, i)))
    init=step+init
    d.thread_list[i].start()
step = d.size-init
d.thread_list.append(DownloadThread.D_thread(DownloadThread.download_file, (init, step, d, d.noOfThreads-1)))
d.thread_list[d.noOfThreads-1].start()

d是一个包含url和size等信息的下载对象。

DownloadThread.download_file函数是

def download_file(init, step, d, i):
try:
    req = Request(d.url, headers={'Range':'bytes=%s-%s'%(init,init+step)})
    d.data[i] = bytes(urlopen(req).read())

我想创建一个函数暂停,以冻结当前阶段的下载。所以我想知道如何在d.thread_list中停止每个单独的线程。

0 个答案:

没有答案