python线程如何创建和传参

这篇文章将为大家详细讲解有关python线程如何创建和传参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一.线程解释

线程是cpu最小调度单位,一个程序中至少有一个或者多个线程(至于进程暂时不做讲解,后面文章会有详细解释)!在开发中使用线程可以让程序运行效率更高,多线程类似于同时执行多个不同代码块。

二.线程创建和启动

1.导入线程模块

1

2

2.创建线程并初始化线程

调用threading模块中的缺省函数Thread,创建并初始化线程,返回线程句柄。如果对缺省函数已经忘记的小伙伴请回到 python函数的声明和定义中关于缺省参数部分复习一下。

1

2

函数名

3.启动线程

通过初始化返回的线程句柄调用start()函数,启动线程,此时会自动执行在创建线程时target对应的函数内部的代码:

1

2

综合上面三点,下面使用代码对python线程thread做详细讲解:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

 

 

 

 

 

 

输出结果:

1

2

3

4

洗衣服开始

打扫房间开始

洗衣服完成

打扫房间完成

运行程序可以发现程序从运行开始到结束,一共耗时5秒时间!注意观察输出日志:

  • 一:洗衣服开始和打扫房间开始几乎同时开始,两个事件同时执行.

  • 二:程序停止5秒;

  • 三:洗衣服和打扫房间几乎同时完成

当然你也可以按照以前的学习的内容,先调用wash_clothes函数,在调用clean_room函数,同样能输出内容,而耗时却是10秒左右,示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

 

 

 

 

输出结果:

1

2

3

4

洗衣服开始

洗衣服完成

打扫房间开始

打扫房间完成

运行程序可以发现程序从运行开始到结束,一共耗时10秒时间!注意观察输出日志:

  • 一:洗衣服开始;

  • 二:程序停止了5秒;

  • 三:洗衣服完成,打扫房间开始

  • 四:程序停止5秒;

  • 五:打扫房间结束,程序结束;

由此可见:多线程可以同时运行多个任务,效率远比单线程更高!

三.线程传参

在上面的demo中,我们并没有为线程传递参数,如果在线程中需要传递参数怎么办呢?

threading.Thread()函数中有两个缺省参数 args 和 kwargs ,args 是元组类型,kwargs 是字典类型,缺省值默认为空,除此之外,其实还可以设置线程的名字等,其函数声明如下:

(ps:如果对缺省函数已经忘记的小伙伴请回到 python函数的声明和定义中关于缺省参数部分复习一下)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

 

 

 

 

 

 

 

示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

 

 

 

 

 

 

四.null

python线程如何创建和传参