Thread类用于表示单独的控制线程。

语法:

t=Thread(group=None,target=None,name=None,args=(),kwargs={})
创建一个新的Thread实例:tgroup:为以后扩张保留的,默认为Nonetarget:一个可调用对象,线程启动时,run()方法将调用此对象name:线程名称,默认创建一个“Thread-N”格式的唯一名称。args:传递给target函数的参数元祖kwargs:传递给target的关机字参数的字典。

常用属性于方法

t.start():通过在一个单独的控制线程中调用run(),启动线程,此方法只能被调用一次。t.run():线程启动时将调用此方法。默认情况下,他会调用目标函数target。还可以在Thread的子类中重新定义此方法。t.join([timeout]):阻塞线程,等待直到线程终止或者出现超时为止。timeout是以秒为单位的超时时间。
线程启动之前不能调用此方法,否则会报错。t.is_alive:如果线程是活动的,返回True,否则返回False,从start()返回的那一刻开始,线程就是活动的,
直到run()方法终止为止。t.name:线程名称,这个字符串用于唯一标识,可以根据需要将它更改为更有意义的值,t.ident:整数线程标识符,如果线程尚未启动,它的值为None。t.daemon:如果线程是后台线程,该值为True,否则未False。当不存在任何任何活动的非后台进程时,整个程序会退出。

实例1:利用Thread对象,简单创建一个线程,并启动一个函数

代码:

#利用Thread对象,简单创建一个线程,并启动一个函数
from threading import Thread
import time
def mark(interval):print("循环等待时间时间%d,等待前时间:%s"%(interval,time.ctime()))time.sleep(interval)print("等待后的时间:%s"%time.ctime())if __name__=="__main__":t=Thread(target=mark,args=(3,))t.daemon=False#设置为非后台线程,不然会看不到自线程打印效果主线程就直接关闭了#下面一句会报错,必须在start()方法之后调用#t.join(3)t.start()#下面语句也会报错,因为start只能调用一次#t.start()print("end")

结果:

实例2:通过继承Thread,实现线程类

代码:

#通过继承Thread,实现线程类
from threading import Thread
import timeclass MyThread(Thread):def __init__(self,interval):#下面语句用来调用基类方法,必须调用Thread.__init__(self)self.daemon=Falseself.interval=intervaldef run(self):print("循环等待时间时间%d,等待前时间:%s" % (self.interval, time.ctime()))time.sleep(self.interval)print("等待后的时间:%s" % time.ctime())if __name__=="__main__":t=MyThread(3)t.start()#为了方便查看打印效果,加了一秒延迟time.sleep(1)print("end")

结果:

thread类_Python线程:thread对象相关推荐

  1. 13.6 Thread类自定义线程类

    package cn.chen.thread; /** * 线程:* 多线程:* 一个java程序只是有两个线程:* 一个是主线程负责main方法代码执行,一个是垃圾回收器线程,负责* 创建线程的方式 ...

  2. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  3. 多线程—Thread类及线程三种创建方式及对比

    线程创建的3种方法: 1.继承Thread类并重写run方法 Thread类方法: Thread Thread.currentThread() :获得当前线程的引用.获得当前线程后对其进行操作. Th ...

  4. PYTHON——多线程:Thread类与线程函数

    Thread类与线程函数 可以使用Thread对象的join方法等待线程执行完毕:主线程(main()函数)中调用Thread对象的join方法,并且Thread对象的线程函数没有执行完毕,主线程会处 ...

  5. 【转】线程、Thread类和线程终止

    一.线程Thread启动 0. Thread类实现了java.lang.Runnable接口,即实现了run方法.虽然在Sun JDK中,start()调用了start0()方法,start0()方法 ...

  6. Thread类创建线程

    目录 1.在java中执行多线程编辑 1.1通过Thread类创建线程 1.2创建线程方法2 1.3创建线程方法3 1.4创建线程方法4 1.5创建线程方法5 2.多线程执行效率 2.1两个变量同时自 ...

  7. 继承Thread类创建线程类

    一 点睛 通过继承Thread类创建线程并启动多线程的步骤: 1 定义Thread的子类,并重写该类的run()方法,该run()方法的方法体代表了线程需要完成的任务.因此run()方法称为线程执行体 ...

  8. java 创建线程thread_初学Java多线程:用Thread类创建线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程, ...

  9. C++多线程:thread类创建线程的多种方式

    文章目录 描述 函数成员简介 总结 描述 头文件 <thread> 声明方式:std::thread <obj> 简介 线程在构造关联的线程对象时立即开始执行,从提供给作为构造 ...

最新文章

  1. 关于 0xCCCCCCCC
  2. 为何人工智能(AI)首选Python?如何转行Python人工智能?
  3. 编程用的记事本软件_数控常用编程软件那么多,你用哪一种?
  4. Bubble Sort Aizu - ALDS1_2_A
  5. bind配置文件解析
  6. 那些年我们踩过的一些坑之 ClickHouse
  7. POJ 2847 Widget Factory
  8. 如何设置jquery的ajax方法为同步
  9. 避免使用PHP保留字作为常量、类名和方法名,以及命名空间的命名
  10. Win11设置定时关机命令没反应怎么办?
  11. ie浏览器打不开闪退_教你修复win7IE浏览器闪退的问题
  12. 小册上新 | 区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp
  13. python基础----Day06
  14. html 防网页假死,htmlweb开发:防止浏览器假死的方法.doc
  15. pdf服务器签章系统,PDF离线签章工具使用方法
  16. 如何通过Apple ID找回弄丢的设备
  17. strncpy()函数用法及其详解
  18. 我对测绘工程专业所学相关软件的看法
  19. 世界十大风景名胜[图]
  20. Android动画中Interpolator 加速器的使用

热门文章

  1. 【纪中集训】2019.08.10【NOIP提高组】模拟 A 组TJ
  2. Mysql字段修饰符(约束)
  3. 常见性能问题:慢sql导致响应时间长分析定位
  4. shell 脚本 简易for循环 脚本
  5. Java之Exception
  6. NoSQL之Cassandra
  7. 『转』图解硬件特性!
  8. 什么是哲学为基础的设计模式?
  9. 54 - 算法 - 动态规划问题 连续子序列和最大
  10. python 检测列表中是否有空值,检查python列表中是否已经存在数字