美文网首页
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学习(一)

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

  • python-threading学习(二)

    今天上了一天的公选课,唉..现在晚上有时间接着昨天的问题来。理解python中的全局解释锁测试下cpu密集型和io...

  • Python-threading模块

    一、线程简介 1、线程与进程区别 每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口 线程不能独立执行,...

  • python-threading介绍

    线程模块 threading.currentThread():返回当前的线程变量 threading.en...

  • Python-threading使用

    一、多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: · 使用线程可以把占据长时间的程序中的任务放...

  • python-threading多线程理解与应用

    涉及到线程,就会存在阻塞和非阻塞、同步和异步。 阻塞和非阻塞强调的是程序在等待调用结果(消息,返回值)时的状态. ...

  • 学习“学习学习再学习” 一

    上周在复习的时候提到了你想不想要一个人生的“作弊器”?答案是肯定的,而且深入研究之后得知学习的三个境界见“通向财富...

  • 学习“学习之道”(一)

    我们都知道,学习,是一辈子的事。实际上我们人生的前半生都基本是在学习中度过的。来问问大家,读了十年书的,举个手,十...

  • 学习一

    很多方法都是只有用了才会记得住,就像循环函数,多用,就会知道for(){}这样的结构,函数function()...

  • 学习一

    学习! 我写的,所分享的东西都是我看到,听到,以及胡思乱想想到的东西;我只是把触动我的内容转述出来。我所说的一切都...

网友评论

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

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