Python并发编程—线程

线程编程(Thread)

线程基本概念

1.什么是线程
【1】 线程被称为轻量级的进程
【2】 线程也可以使用计算机多核资源,是多任务编程方式
【3】 线程是系统分配内核的最小单元
【4】 线程可以理解为进程的分支任务

2.线程特征
【1】 一个进程中可以包含多个线程
【2】 线程也是一个运行行为,消耗计算机资源
【3】 一个进程中的所有线程共享这个进程的资源
【4】 多个线程之间的运行互不影响各自运行
【5】 线程的创建和销毁消耗资源远小于进程
【6】 各个线程也有自己的ID等特征

threading模块创建线程

【1】 创建线程对象

from threading import Thread 

t = Thread()

  • 功能:创建线程对象
  • 参数:target 绑定线程函数
  •    args 元组 给线程函数位置传参
  •    kwargs 字典 给线程函数键值传参

【2】 启动线程

t.start()

【3】 回收线程

t.join([timeout])

 1 import threading
 2 from time import sleep
 3 import os
 4 
 5 a = 1
 6 
 7 
 8 # 线程函数
 9 def music():
10     for i in range(3):
11         sleep(2)
12         print(os.getpid(), "播放黄河大合唱")
13     global a
14     print("a = ", a)
15     a = 10000
16 
17 
18 # 创建线程对象
19 t = threading.Thread(target=music)
20 t.start()  # 启动线程
21 
22 for i in range(4):
23     sleep(1)
24     print(os.getpid(), "播放葫芦娃")
25 
26 t.join()  # 回收线程
27 
28 # 7464 播放葫芦娃
29 # 7464 播放黄河大合唱
30 # 7464 播放葫芦娃
31 # 7464 播放葫芦娃
32 # 7464 播放黄河大合唱
33 # 7464 播放葫芦娃
34 # 7464 播放黄河大合唱
35 # a =  1
线程使用示例1
 1 from threading import Thread
 2 from time import sleep
 3 import os
 4 
 5 # 含有参数的线程函数
 6 def fun(sec,name):
 7   print("线程函数参数",os.getpid())
 8   sleep(sec)
 9   print("%s 线程完毕"%name)
10 
11 # 创建多个线程
12 jobs = []
13 for i in range(5):
14   t = Thread(target = fun,args=(2,),
15              kwargs={'name':'T%d'%i})
16   jobs.append(t)
17   t.start()
18 
19 for i in jobs:
20   i.join()
21   
22 # 线程函数参数 9224
23 # 线程函数参数 9224
24 # 线程函数参数 9224
25 # 线程函数参数 9224
26 # 线程函数参数 9224
27 # T2 线程完毕
28 # T1 线程完毕
29 # T0 线程完毕
30 # T3 线程完毕
31 # T4 线程完毕
现场使用示例2
原文地址:https://www.cnblogs.com/maplethefox/p/10989193.html