Python 3基础教程38-threading和创建一个线程

释放双眼,带上耳机,听听看~!

       前面几篇是介绍tkinter GUI编程的,我想这个有时间得出一个系列的,比较完整能够入门的教程。好了本文介绍threading模块,中文的意思是线程。要说线程,你第一反应应该是听说过进程。在电脑里,强制关闭那个程序,就要杀掉哪个对应的进程。作为测试人员来讲,线程基本上没有接触过的。我也没有线程的相关基础知识,我一开始去百度百科,看了下线程。说线程是一个轻量级的进程,多个线程共享进程的资源。线程是CPU能够调度的最小单位,等等,这些概念,把我搞晕,无从下手的感觉。

  1. 什么是线程

       这里不说专业计算机词语解释,举例来解释线程。一份工作,可以一个人,给他足够时间,他一定能够完成;也可以找多个人,短期内完成。这里一个人人干完一个或,就好比单线程工作模式,多个人同时干完一份工作,就叫多线程模式,只是在多线程模式下,一个任务被划分成多个子任务,然后这些子任务分别被不同的线程给完成了。关于线程我们就先通过这样通俗解释,理解就好。我们先不管多线程,先学习下单线程。

  1. 先了解一个概念


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1import threading
2
3
4def exampleFun():
5
6    # 打印当前激活的线程数量
7    print(threading.active_count())
8
9    # 查看上面激活的线程是哪几个
10    print(threading.enumerate())
11
12# 调用函数执行
13exampleFun()
14

       我们在使用线程之前,需要导入相关lib,这个lib我们用threading。上面我们先了解线程的两个函数,第一个是计算当前一共有多少个激活的线程,第二个方法是显示激活线程是那些。运行一下,看下结果输出。


1
2
3
4
5
1================ RESTART: C:/Users/Anthony/Desktop/thread1.py ================
22
3[<_MainThread(MainThread, started 5548)>, <Thread(SockThread, started daemon 5768)>]
4>>>
5

1)显示我当前有两个激活的线程。

2)打印这两个激活线程,_MainThread,表示一个主线程,后面第二个是这个主线程的子线程,多个线程中,只能有一个主线程。

  1. 如何创建一个线程


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1import threading
2
3
4def exampleFuc():
5    added_thread = threading.Thread(target=thread_job)
6    added_thread.start()
7  
8
9def thread_job():
10    print('这是一个添加的线程,系列号是%s' % threading.current_thread())
11
12
13exampleFuc()
14
15

        上面的exampleFuc()是一个普通函数,这个函数里面创建了一个线程,可以创建多个,定义了哪个线程干什么工作。target=thread_job,thread_job是我们定义的一个具体干活的函数,target就是目标,这里就是告诉这个新建的线程,需要做什么工作。
记住,不要写成这样
target=thread_job()
,这里带了小括号是不对的。thread.start(),表示运行这个线程。这里,执行了一次线程,就打印一次线程的名称。效果如下


1
2
1这是一个添加的线程,系列号是<Thread(Thread-1, started 5164)>
2

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C++ explicit关键字

2022-1-11 12:36:11

安全运维

最短路径之Dijkstra算法

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索