threading模块创建线程

什么是线程 (thread)
  线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。

线程特征
  *线程计算机多核分配的最小单位
  *一个进程可以包含多个线程
  *线程也是一个运行的过程,消耗计算机资源,多个线程共享进程的资源和空间
  *线程的创建删除消耗的资源都要远远小于进程
  *多个线程之间执行互不干扰
  *线程也有自己的特有属性,比如指令集ID

常用函数方法:

threading.Thread()
  功能 : 创建线程对象
  参数 : target 线程函数
    name 线程名称 默认Thread-1
    args 元组 给线程函数位置传参
    kwargs 字典 给线程函数键值传参
  返回 : 线程对象

t.start() 启动线程
t.join([timeout]) 回收线程

t.daemon 属性
  默认情况下主线程结束不会影响分支线程执行
  设置为True时主线程退出则分支线程也退出

设置 daemon值
t.setDaemon(True)
t.daemon = True

判断属性值
t.isDeamon()
*要在start前设置,不会和join同用

from threading import Thread,currentThread
from time import sleep

#线程函数
def fun(sec):
    print("线程属性测试")
    sleep(sec)
    #线程对象的getName()属性获取名字
    print("%s 线程结束"%currentThread().getName())

#创建线程
thread = []
for i in range(3):
    t = Thread(name = "zengsf%d"%i, target = fun, args = (2,))
    thread.append(t)
    t.start()

print("is alive:", t.is_alive())    #参看线程状态
thread[1].setName("fengshao")   #设置线程对象名称
print(thread[1].name)    #获取线程名称
#回收进程
for i in thread:
    i.join()
输出结果:
线程属性测试
线程属性测试
线程属性测试
is alive: True
fengshao
zengsf0 线程结束
fengshao 线程结束
zengsf2 线程结束

猜你喜欢

转载自www.cnblogs.com/zengsf/p/9649409.html