zoukankan      html  css  js  c++  java
  • python:多线程

    多线程的简单使用

    需求:同时执行多个方法

    from time import sleep
    import datetime
    
    
    def listen_music():
        print('我在听音乐%s' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'))
        sleep(2)
    
    
    def play_basketball():
        print('我在打篮球%s' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'))
        sleep(3)
    
    
    if __name__ == '__main__':
        listen_music()
        play_basketball()

    输出:

    通过执行时间, 可以发现上面的方式只能串行执行方法,第一个方法执行完成才执行第二个。

    多线程方法,同时执行

    from time import sleep
    import threading
    import datetime
    
    
    def listen_music():
        print('我在听音乐%s' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'))
        sleep(2)
    
    
    def play_basketball():
        print('我在打篮球%s' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'))
        sleep(3)
    
    
    if __name__ == '__main__':
        t1 = threading.Thread(target=listen_music)
        t1.start()
        t2 = threading.Thread(target=play_basketball)
        t2.start()

    输出:

     可以发现他们是同一时刻开始执行,看上面的数据毫秒数都一样,是不是非常严格的并发执行呢?

    其实也不存在严格的同时,只不过是t1.start()和t2.start()之间代码量少执行的很快所以毫秒数一样,

    当代码中增加几行语句时,输出就不一致了:

  • 相关阅读:
    mysql将一个表的数据 重复复制多份到表中
    PHP中将指定文本内容导入到word中
    系统安全-SElinux
    通过身份证号码提取年龄,性别
    MySQL-获取某天的数据
    mysql-介绍、MySQL部署、数据类型、存储引擎
    监控系统-ELK
    监控系统-Grafana
    监控系统-zabbix
    监控系统-openfalcon
  • 原文地址:https://www.cnblogs.com/gcgc/p/11698302.html
Copyright © 2011-2022 走看看