zoukankan      html  css  js  c++  java
  • 爬虫-多进程(10)

    #1. 实例化Thread
    #2. 继承Thread类
    import time
    from threading import Thread
    
    
    def sleep_task(sleep_time):
        print("sleep {} seconds start!".format(sleep_time))
        time.sleep(sleep_time)
        print("sleep {} seconds end!".format(sleep_time))
    
    
    class SleepThread(Thread):
        def __init__(self, sleep_time):
            self.sleep_time = sleep_time
            super().__init__()
    
        def run(self):
            print("sleep {} seconds start!".format(self.sleep_time))
            time.sleep(self.sleep_time)
            print("sleep {} seconds end!".format(self.sleep_time))
    
    
    if __name__ == "__main__":
        start_time = time.time()
        t1 = Thread(target=sleep_task, args=(2,))
        t1.setDaemon(True)
        t1.start()
    
        t2 = Thread(target=sleep_task, args=(3,))
        t2.setDaemon(True)
        t2.start()
    
        # t1.join()
        # t2.join()
        time.sleep(1)
        end_time = time.time()
        print("last_time: {}".format(end_time-start_time))
    #
    #     #1.当开启一个程序的时候,会默认启动一个主线程
    #     #2. 如何在主线等到其他线程执行完以后才继续执行, join, setDaemon

    区分join与setDaemon

    join ()方法:
    主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,
    才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法。 setDeamon 程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程就分兵两路,分别运行,那么当主线程完成想退出时,会检验子线程是否完成。 如果子线程未完成,则主线程会等待子线程完成后再退出。但是有时候我们需要的是,只要主线程完成了,不管子线程是否完成,都要和主线程一起退出,这时就可以用setDaemon方法了
    好好学习,天天向上
  • 相关阅读:
    计算机原理 3.4 补码一位乘法
    信号与系统 第二章(2.1)
    信号与系统(1.6、1.7)
    第17章 使用BIOS进行键盘输入和磁盘读写
    第16章 直接定址表
    聚类:主要聚类算法
    机器学习——输入空间、特征空间、输出空间
    机器学习——线性回归
    机器学习——梯度下降法
    深度学习——概率与信息论
  • 原文地址:https://www.cnblogs.com/topass123/p/13340160.html
Copyright © 2011-2022 走看看