""" 操作系统会为每个进程分配独立的资源 进程缺点:因为占用独立的资源所以开销比较的 一般情况下,我们可以使用多线程来完成开发任务 一个进程包含了多个线程,线程对系统的开销小 一个软件就是一个进程,软件当中的各种操作可以看成线程 """ from threading import Thread from urllib import request import time,random #创建线程 def downloader(name): for i in range(100): print("线程%s-----------%d"%(name,i)) time.sleep(random.random()) print("子线程任务完成") if __name__ == '__main__': # #主进程下面有一个线程 # name_list=["线程小红", # "线程小黑",] # for name in name_list: #这里有三个线程,默认有一个主线程 # t=Thread(target=downloader,args=(name,)) #创建线程,两个线程同时进行 # t.start() # print("主线程执行完毕~~~~") # 主进程下面有一个线程 name_list = ["线程小红", "线程小黑", ] tread_list=[] for name in name_list: # 这里有三个线程,默认有一个主线程 t = Thread(target=downloader, args=(name,)) # 创建线程,两个线程同时进行 t.start() tread_list.append(t) for t in tread_list: t.join() print("主线程执行完毕~~~~") """ 线程线程小红-----------0 线程线程小黑-----------0 线程线程小黑-----------1 线程线程小红-----------1 线程线程小红-----------2 线程线程小黑-----------2 线程线程小红-----------3 """ from threading import Thread from urllib import request #创建线程 def downloader(url): response=request.urlopen(url) file_name=url.split("/")[-1] content=response.read() with open(file_name,"wb") as fb: fb.write(content) if __name__ == '__main__': #主进程下面有一个线程 url_list=["http://img.netbian.com/file/2019/0225/smallb3d6dc1c417882c140c2190ae1c321c31551062630.jpg", "http://img.netbian.com/file/2019/0311/small91c78151d9fe112e49d322fab157abd11552278397.jpg", ] for url in url_list: t=Thread(target=downloader,args=(url,)) #创建线程 t.start()
多线程创建示例/day18
猜你喜欢
转载自blog.csdn.net/qq_39112101/article/details/88538989
今日推荐
周排行