孤叶翔云

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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....")

  其中通过

1
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   孤叶翔云  阅读(7786)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示