一篇关于python线程的博文
python中的Threading.Thread类
Thread是threading模块中最重要的类之一,它的作用就是来创建线程。
有两种创建方式:
方式一:
继承Thread类,重写它的run方法;
此处可重写Thread类中的run方法,其中可添加需要调用的方法,随后将新类实例化后调用即可。
方式二:
创建一个Threading.Thread对象,在它的初始化函数中将调用对象作为参数传入。
此处func方法便是需要调用的方法,将其作为参数传入Thread类实例化的对象即可。
Thread类的属性和方法:
属性:
Thread.name Thread类的属性,即线程的名称
Thread.ident Thread类的属性,即线程的标识符。线程标识符是一个非零整数,只有在调用了start()方法之后该属性才有效,否则它只返回None。
方法:
Thread.setName(str) thread类的方法,设置线程名称
Thread.getName() thread类的方法,获取线程名称
Thread.is_alive()
Thread.isAlive() thread类的方法,判断线程的状态,激活还是停止
Thread.json([timeout]) thread类的方法,调用Thread.join将会使主调线程堵塞,直到被调用线程运行结束或超时。参数timeout是一个数值类型,表示超时时间,如果未提供 该参数,那么主调线程将一直堵塞到被调线程结束
线程锁:threading.RLock和threading.Lock
在threading中,可定义两种类型的线程锁threading.RLock和threading.Lock
这两种锁的主要区别在于,threading.RLock可以在同一线程中出现多次acquire来实现所需的要求,而threading.Lock使用一次,若多次就会成为死锁。注意:在使用threading.RLock时,acquire, release方法必须成对出现。不然也会造成死锁。