边听音乐,边看电影。串行需要18秒,并行需要10秒

from time import ctime,sleep
import threading
def music(func):
    for i in range(2):
        print('开始听音乐%s    时间:%s'%(func,ctime()))
        sleep(4)
        print('结束听音乐    时间:%s'%ctime())

def movie(func):
    for i in range(2):
        print('开始看电影%s    时间:%s'%(func,ctime()))
        sleep(5)
        print('结束看电影    时间:%s'%ctime())

threads = []
t1 = threading.Thread(target=music,args=('我的祖国',))
threads.append(t1)
t2 = threading.Thread(target=movie,args=('上甘岭',))
threads.append(t2)

if __name__ == '__main__':
    print('现在开始 时间:%s'%ctime())
    for t in threads:
        #t.setDaemon(True)    #如果此处设置Daemon,表示如果主线程结束 则子线程跟随立即结束不再往下执行
        t.start()
        #t.join()
    t2.join()    #因为t2需要的时长比t1多,所这里要t2.join等待t2完结后才打印下面的‘全部结束’,假如t1执行时间比t2长则应该t1.join
    print('全部结束    时间:%s'%ctime())

输出:

现在开始 时间:Wed Dec 15 23:21:20 2021
开始听音乐我的祖国 时间:Wed Dec 15 23:21:20 2021
开始看电影上甘岭 时间:Wed Dec 15 23:21:20 2021
结束听音乐 时间:Wed Dec 15 23:21:24 2021
开始听音乐我的祖国 时间:Wed Dec 15 23:21:24 2021
结束看电影 时间:Wed Dec 15 23:21:25 2021
开始看电影上甘岭 时间:Wed Dec 15 23:21:25 2021
结束听音乐 时间:Wed Dec 15 23:21:28 2021
结束看电影 时间:Wed Dec 15 23:21:30 2021
全部结束 时间:Wed Dec 15 23:21:30 2021

posted on 2021-12-15 23:23  csy113  阅读(22)  评论(0编辑  收藏  举报