• Python--day41--thread1.join()


    在 Python 的多线程编程中,在实例代码中经常有 thread1.join()这样的代码。那么今天咱们用实际代码来解释一下 join 函数的作用。

    join的原理就是依次检验线程池中的线程是否结束,没有结束就阻塞直到线程结束,如果结束则跳转执行下一个线程的join函数。

    先看看这个:

    1. 阻塞主进程,专注于执行多线程中的程序。

    2. 多线程多join的情况下,依次执行各线程的join方法,前头一个结束了才能执行后面一个。

    3. 无参数,则等待到该线程结束,才开始执行下一个线程的join。

    4. 参数timeout为线程的阻塞时间,如 timeout=2 就是罩着这个线程2s 以后,就不管他了,继续执行下面的代码。

    代码示例:

    复制代码
    # coding: utf-8
    # 测试多线程中join的功能
    import threading, time  
    def doWaiting():  
        print 'start waiting1: ' + time.strftime('%H:%M:%S') + "
    "  
        time.sleep(3)  
        print 'stop waiting1: ' + time.strftime('%H:%M:%S') + "
    " 
    def doWaiting1():  
        print 'start waiting2: ' + time.strftime('%H:%M:%S') + "
    "   
        time.sleep(8)  
        print 'stop waiting2: ', time.strftime('%H:%M:%S') + "
    "  
    tsk = []    
    thread1 = threading.Thread(target = doWaiting)  
    thread1.start()  
    tsk.append(thread1)
    thread2 = threading.Thread(target = doWaiting1)  
    thread2.start()  
    tsk.append(thread2)
    print 'start join: ' + time.strftime('%H:%M:%S') + "
    "   
    for tt in tsk:
        tt.join()
    print 'end join: ' + time.strftime('%H:%M:%S') + "
    "
  • 相关阅读:
    docker-compose.yml(2)
    docker-compose.yml(3)
    docker-compose.yml(4)
    生产者&消费者.py
    工作机制.py
    2.5 webpack 进阶
    2.3 Gulp
    2.4 webpack + gulp 构建完整前端工作流
    2.2 webpack
    2.1 前端工程化概述
  • 原文地址:https://www.cnblogs.com/xudj/p/10345703.html
Copyright © 2020-2023  润新知