zoukankan      html  css  js  c++  java
  • 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 线程结束
  • 相关阅读:
    pid系统控制算法
    pandas+numpy 对df数据中的某列进行等分分桶操作
    pandas学习
    angular6 数组遍历项进行双向绑定 丢失焦点 问题解决
    TypeScript 之构造器 constructor 方法 methods
    公开便民信息网站收集
    C++11_线程池
    百度网盘信息
    【赵强老师】MongoDB中的索引(下)
    TDSQL 4001 备份故障处理案例
  • 原文地址:https://www.cnblogs.com/zengsf/p/9649409.html
Copyright © 2011-2022 走看看