标签:开始 mic strong music start get 输出 date play
多线程的简单使用
需求:同时执行多个方法
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()之间代码量少执行的很快所以毫秒数一样,
当代码中增加几行语句时,输出就不一致了:
标签:开始 mic strong music start get 输出 date play
原文地址:https://www.cnblogs.com/gcgc/p/11698302.html