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)

