python中线程的两种创建方式(详细代码示例)

python中线程的两种创建方式:

在python中我们创建线程的方式有两种:一种是编写一个继承自线程的类,重写run()方法;另一种是编写一个函数来运行子进程,通过目标参数指定需要运行的函数名。以下是两种方式的介绍及详细代码示例。

方式一:编写一个继承自线程(线程在模块中)的类,重写运行方法,在run()方法中编写线程的执行代码;使用线程对象的star()方法启动线程可以通过将参数传递到构造方法中,在重写的run()的方法中使用参数的传递。

import threading
import time


# 创建的Thread类
class HelloThread(threading.Thread):

    def __init__(self, threadname, address):

        # 在构造函数中继承父类的name属性
        threading.Thread.__init__(self, name=threadname)

        self.address = address

    # run()方法的重写
    def run(self):
        print(threading.currentThread().getName() + --子进程正在执行)

        print(传递的address值: + self.address)

# 主程序入口
if __name__ == __main__:
    # 实例化线程对象
    hellothread = HelloThread(child_thread, add_ress)

    # 启动线程
    hellothread.start()

    # 打开后结果:子线程执行完毕后才会执行主线程
    # hellothread.join()

    # 此处主线程的名称为默认名
    print(threading.currentThread().getName() + --主线程正在执行)

方式二:实例化线程对象,通过目标参数指定线程将要执行的函数名,args参数通过元组来传递函数的位置实参,kwargs函数通过字典来确定函数的关键字实参。

import threading

def func(address):

    #子线程    
    print(threading.currentThread().getName()+--子线程正在执行)

    print(传递的address值:,address)

#实例化Thread对象,并进行参数的传递
hellothread = threading.Thread(target=func,name=方法二,args=(add_ress,))

hellothread.start()

# 打开后结果:子线程执行完毕后才会执行主线程
# hellothread.join()

#主线程
print(threading.currentThread().getName()+--主线程正在执行)

注意:方式二中的实例化线程对象,并进行参数的传递:如果将线程设置为后台线程(通过设置线程对象中的演示=真变为后台进程,只要前台进程执行完毕即使后台进程没有执行完毕也不会继续执行。)

实例代码如下: hellothread = threading.Thread(target = func,name =方法二,args =(add_ress,),demo = True)

经验分享 程序员 微信小程序 职场和发展