多线程创建示例/day18

"""
操作系统会为每个进程分配独立的资源
进程缺点:因为占用独立的资源所以开销比较的
一般情况下,我们可以使用多线程来完成开发任务
一个进程包含了多个线程,线程对系统的开销小
一个软件就是一个进程,软件当中的各种操作可以看成线程
"""
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()

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/88538989