Python 创建线程的两种方式

Python 创建协程的方式主要有以下两种

Python3中提供了一个内置模块threating.Thred,可以非常方便的创建协程

threading.Thread() 一般接收两个参数:

线程函数名:线程执行的函数(任务),由我们自已定义,注意不要加();

线程函数的参数:线程函数名所需的参数,以元组的形式传入。若不需要参数,可以不指定(如果元组就一个参数要加逗号)。

使用Thread类的构造器创建线程
 

# 自定义线程要执行的函数
def test(par = 'jibu'):
    for info in range(2):
        print("输出:",par)
        time.sleep(2)

if __name__ == '__main__':
    
    # 创建协程对象,不传参
    thread_1 = Thread(target=test)
    # 启动线程1
    thread_1.start()
    
    # 创建协程对象,传参
    thread_2 = Thread(target=test,args=('tutu',))
    # 启动线程2
    thread_2.start()

结果
输出: jibu
输出: tutu
输出: jibu
输出: tutu

继承Thread类创建线程类
通过继承 Thread 类,我们可以自定义一个线程类,从而实例化该类对象,获得子线程。

需要注意的是,在创建 Thread 类的子类时,必须重写从父类继承得到的 run() 方法。因为该方法即为要创建的子线程执行的方法,其功能如同第一种创建方法中的 action() 自定义函数。
 

class TestThread(Thread):
    def __init__(self,par = 'jibu'):
        super().__init__()
        self.par = par

    def run(self):
        for info in range(2):
            print("输出:", self.par)
            time.sleep(2)

if __name__ == '__main__':
    # 创建协程对象,不传参
    thread_1 = TestThread()
    # 启动线程1
    thread_1.start()

    # 创建协程对象,传参
    thread_2 = TestThread('tutu')
    # 启动线程2
    thread_2.start()
    
结果
输出: jibu
输出: tutu
输出: jibu
输出: tutu

Thread 类提供了如下的 init() 构造器,可以用来创建线程的,所以这里自定义的类中调用了父类中的 init()构造方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值