一篇关于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方法必须成对出现。不然也会造成死锁。

 

posted on 2017-08-21 16:45  __Evin  阅读(122)  评论(0编辑  收藏  举报

导航