当前位置: 首页 > 编程笔记 >

Python多线程编程(三):threading.Thread类的重要函数和方法

仲孙焱
2023-03-14
本文向大家介绍Python多线程编程(三):threading.Thread类的重要函数和方法,包括了Python多线程编程(三):threading.Thread类的重要函数和方法的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍threading模块中的主类Thread的一些主要方法,实例代码如下:


'''  

Created on 2012-9-7  

 

@author:  walfred 

@module: thread.ThreadTest3  

@description: 

'''    

import threading  

 

class MyThread(threading.Thread):  

    def __init__(self):  

        threading.Thread.__init__(self)  

 

    def run(self):  

        print "I am %s" % (self.name)  

 

if __name__ == "__main__":  

    for i in range(0, 5):  

        my_thread = MyThread()  

        my_thread.start()

name相关

你可以为每一个thread指定name,默认的是Thread-No形式的,如上述实例代码打印出的一样:


I am Thread-1

I am Thread-2

I am Thread-3

I am Thread-4

I am Thread-5

当然你可以指定每一个thread的name,这个通过setName方法,代码:


def __init__(self):  

    threading.Thread.__init__(self)  

    self.setName("new" + self.name)


join方法

join方法原型如下,这个方法是用来阻塞当前上下文,直至该线程运行结束:


def join(self, timeout=None):  

        timeout可以设置超时

timeout可以设置超时蚕食

setDaemon方法

当我们在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程就分兵两路,当主线程完成想退出时,会检验子线程是否完成。如果子线程未完成,则主线程会等待子线程完成后再退出。但是有时候我们需要的是,只要主线程完成了,不管子线程是否完成,都要和主线程一起退出,这时就可以用setDaemon方法,并设置其参数为True。

当然这上面列举的只是我们在编程是经常使用到的方法,更多方法,可以参见:Higher-level threading interface 

 类似资料:
  • 本文向大家介绍Linux下的多线程编程(三),包括了Linux下的多线程编程(三)的使用技巧和注意事项,需要的朋友参考一下    下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。 或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。 下面是我们的代码: 下面我们先来编译、执行一下 引文: 实例代码里头的注释应该比较清楚了吧,下面我把网路上介绍上面涉及到的几个函

  • 本文向大家介绍Python多线程编程(二):启动线程的两种方法,包括了Python多线程编程(二):启动线程的两种方法的使用技巧和注意事项,需要的朋友参考一下 在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用threading模块实现多线程编程。一般来说,使用

  • 本文向大家介绍python多线程编程中的join函数使用心得,包括了python多线程编程中的join函数使用心得的使用技巧和注意事项,需要的朋友参考一下 今天去辛集买箱包,下午挺晚才回来,又是恶心又是头痛。恶心是因为早上吃坏东西+晕车+回来时看到车祸现场,头痛大概是烈日和空调混合刺激而成。没有时间没有精神没有力气学习了,这篇博客就说说python中一个小小函数。 由于坑爹的学校坑爷的专业,多线程

  • 9.3.4 Python 多线程编程 很多编程语言都支持多线程编程,Python 语言亦然。与其他编程语言相比,Python 的 多线程编程是非常简单的。 Python 提供了两个支持线程的模块,一个是较老的 thread 模块,另一个是较新的 threading 模块。其中 threading 采用了面向对象实现,功能更强,建议读者使用。 thread 模块的用法 任何程序一旦开始执行,就构成了

  • 本文向大家介绍Java多线程并发编程 并发三大要素,包括了Java多线程并发编程 并发三大要素的使用技巧和注意事项,需要的朋友参考一下 一、原子性 原子,一个不可再被分割的颗粒。原子性,指的是一个或多个不能再被分割的操作。 int i = 1; // 原子操作 i++; // 非原子操作,从主内存读取 i 到线程工作内存,进行 +1,再把 i 写到朱内存。 虽然读取和写入都是原子操作,但合起来就不

  • 本文向大家介绍Python多线程编程(六):可重入锁RLock,包括了Python多线程编程(六):可重入锁RLock的使用技巧和注意事项,需要的朋友参考一下 考虑这种情况:如果一个线程遇到锁嵌套的情况该怎么办,这个嵌套是指当我一个线程在获取临界资源时,又需要再次获取。 根据这种情况,代码如下: 这种情况的代码运行情况如下: 之后就直接挂起了,这种情况形成了最简单的死锁。 那有没有一种情况可以在某