美文网首页
python-threading学习(一)

python-threading学习(一)

作者: 你就像只铁甲小宝 | 来源:发表于2019-03-15 21:35 被阅读0次

    今天开始准备学习threading这个库啦,毕竟面试的时候少不了问多进程,多线程的,所以还是要准备准备的,嘻嘻。


    今天理解最基本的线程运行和join的使用

    我就直接贴代码了,跑下代码,看下注释就明白了。

    import threading
    import time
    
    
    def music(func):
        for i in range(2):
            sleep_seconds = 4
            print(f"Begin listen to {func, time.ctime()}")
            time.sleep(sleep_seconds)
            print(f"过了{sleep_seconds}s")
            print(f"end listening at the music: {func, time.ctime()} ")
    
    
    def movie(func):
        for i in range(2):
            sleep_seconds = 5
            print(f"begin watching at the{func, time.ctime()} ")
            time.sleep(sleep_seconds)
            print(f'过了{sleep_seconds}s')
            print(f"end watching at the movie: {func, time.ctime()}")
    
    
    if __name__ == '__main__':
        threads = []
        t1 = threading.Thread(target=music, args=['七里香', ])
        t2 = threading.Thread(target=movie, args=['阿甘正传', ])
        threads.append(t1)
        threads.append(t2)
        print("对于join的理解,三个小例子")
        """
            第一种情况
        """
        # print("下面是三个小例子,方便理解")
        # print("第一种:循环中按顺序执行,启动music线程,然后阻塞,然后启动movie线程,在阻塞,最后在结束主进程")
        # for t in threads:
        #    t.start()
        #    t.join()
        # print(f"all over {time.ctime()}")
        # print("最终结果就是,必须等到music放完了才会看moive,然后回到主进程")
        """
            第二种
        """
        # print("第二种: 循环中启动两个线程,然后阻塞music线程,意思是必须等music线程结束后才会执行主进程。")
        # print("你可以看到当music执行完成后,all over被打印了出来")
        # for t in threads:
        #    t.start()
        # t1.join()
        # print(f"all over {time.ctime()}")
        """
            第三种
        """
        print("第三种:跟第二种一样,阻塞movie进程,必须等到movie放完了,才会执行主进程")
        for t in threads:
            t.start()
        t2.join()
        print(f"all over {time.ctime()}")
    

    发现不错的文章


    python——threading模块


    明天


    • 理解python中的全局解释锁。
    • 测测python中io密集型和计算机密集型多线程的差异。

    相关文章

      网友评论

          本文标题:python-threading学习(一)

          本文链接:https://www.haomeiwen.com/subject/qbhdmqtx.html