孤叶翔云

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

可以通过实例化一个threading.Thread()对象来创建子线程。

import threading
import time


def listen_music(num):
    print("----> %d" % num)
    print("begin to listen music at ", time.ctime())
    time.sleep(5)
    print("end to listen music at ", time.ctime())


if __name__ == '__main__':

    t1 = threading.Thread(target=listen_music, args=(13,))

    t1.start()

    print("Two things is end....")

  其中通过

t1 = threading.Thread(target=listen_music, args=(13,))

  这句代码,创建了一个子线程。target参数是该线程要执行的函数;args参数需要传入一个元组,该元组是函数运行需要的实参。

t1.start() 启动线程;但实际上start()方法只是让线程处于就绪状态,即可以被计算机的CPU切换到该线程并执行。

运行结果如下:

----> 13
listening is end.... # 主线程执行的语句
begin to listen music at  Tue Mar 19 22:03:36 2019 # 子线程开始的语句
end to listen music at  Tue Mar 19 22:03:41 2019 # 子线程结束的语句

其中可以看到,主线程主要执行了主函数中的最后一句打印;子线程与主线程同时开始,但time.sleep(10)让子线程休眠了10秒,在主线程结束后10秒,子线程才会结束。

posted on 2019-03-20 09:45  孤叶翔云  阅读(7779)  评论(0编辑  收藏  举报