美文网首页
多线程的创建和使用

多线程的创建和使用

作者: 小袋鼠cf | 来源:发表于2018-12-24 14:32 被阅读0次

    from threading import Thread
    import threading
    import time
    data = []
    def download_image(url,num):
    """下载图片"""
    global data
    time.sleep(5)
    print(url,num)
    data.append(num)

    def read_data():
    global data
    for i in data :
    print(i)

    if name == 'main':
    #获取当前线程的名称threading.currentThead().name
    print('主线程开启',threading.currentThread().name)
    #创建一个线程
    """
    target =None :线程要执行的目标函数
    name=None:创建线程时指定线程的名称
    args=():为目标函数,传递参数,(tuple元祖类型)
    """
    thread_sub1 = Thread(target=download_image,
    name='下载线程',
    args=('http://img2.imgtn.bdimg.com/it/u=3908481601,2728201109&fm=26&gp=0.jpg',1)
    )
    thread_sub2 = Thread(target=read_data,
    name='下载线程',
    )

    #是否开启守护进程(开启线程之前设置)
    # daemon:False,在主线程结束的时候,会检测子线程任务是否结束,如果子线程中任务没有结束,则会等待子线程正常结束任务
    # daemon:True 在主线程结束的时候,会检测子线程任务是否结束,如果子线程中任务没有结束,则会让子线程跟随主线程一起结束
    
    # thread_sub1.daemon = True
    thread_sub1.start()
    
    #join():阻塞,等待子线程中的任务执行完毕后,在再回到主线程中继续执行
    thread_sub1.join()
    
    thread_sub2.start()
    
    thread_sub2.join()
    
    
    print('主线程结束',threading.current_thread().name)

    相关文章

      网友评论

          本文标题:多线程的创建和使用

          本文链接:https://www.haomeiwen.com/subject/eyhzkqtx.html