通过继承Thread来实现多线程可以提高对线程任务的个性化定制,具体如下
from threading import Thread
class myThread(Thread):
#每创建一个线程就加入到数组中,方便日后调用
all_Thread = []
#初始化线程,可以将function函数所需要的参数在初始化thread过程中加入到thread属性
def __init__(self,thread_name,parameter):
Thread.__init__(self,name = thread_name)
#暂时将function所需要的参数放在thread属性中
self.parameter = parameter
#添加一个标识符,指示线程是否在进行
self.isRunning = True
myThread.all_Thread.append(self)
def run(self):
#重写run函数,function为想要调用的函数
#此时function的参数可以从self.parameter中拿出来使用
function(self.name,self.parameter)
def stop(self):
#结束线程的标识符
self.isRunning = False
def function(name,parameter):
"""
完成你的任务
"""
#以下为可选内容,通常线程会自动结束
for thread in myThread.all_Thread:
if thread.name == name:
print name
thread.stop()
myThread.all_Thread.remove(thread)
def test():
thread_1 = myThread("my first thread",parameter)
thread_1.start()
if __name__ == "main":
test()