Python多线程 threading模块[3] Thread类的重要函数

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

# !/usr/bin/python3
# coding: utf-8

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()

1、name相关

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

I am Thread-1
I am Thread-2
I am Thread-3
I am Thread-4
I am Thread-5

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

# !/usr/bin/python3
# coding: utf-8

import threading


class MyThread(threading.Thread):

    def __init__(self, name):
        threading.Thread.__init__(self)
        self.setName(name)

    def run(self):
        print("I am %s" % self.name)


if __name__ == "__main__":
    for i in range(0, 5):
        name = "new-%s" % i
        my_thread = MyThread(name)
        my_thread.start()

        运行结果如下:

I am new-0
I am new-1
I am new-2
I am new-3
I am new-4

 

2、join方法

        join方法是用来阻塞当前上下文,直至该线程运行结束

 

3、setDaemon方法

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

 

相关阅读

《Python多线程 threading模块[1] 概述》

《Python多线程 threading模块[2] 两种方式启动线程》

《Python多线程 threading模块[3] Thread类的重要函数》

《Python多线程 threading模块[4] Lock互斥锁》

《Python多线程 threading模块[5] 死锁的形成》

《Python多线程 threading模块[6] 可重入锁RLock》

《Python多线程 threading模块[7] Event线程通信》

《Python多线程 threading模块[8] Condition实现复杂同步》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值