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方法了
    好好学习,天天向上
  • 相关阅读:
    堆和栈的区别!
    产品经理和程序员的爱恨情仇
    字符串MD5加密运算
    事件驱动模型。。。。有时间弄
    Apache服务器httpd.exe进程占用cpu超过50%的解决方法
    ZigBee Xbee S2通讯设置
    pipe-filter 真难找啊
    javacomm64位用不了,可以使用RXTXcomm for x64
    导入 sun.net.TelnetInputStream; 报错
    linux下gedit读取txt乱码解决办法
  • 原文地址:https://www.cnblogs.com/topass123/p/13340160.html
Copyright © 2011-2022 走看看