Python 中的多线程threading.Thread和Thr

2022-05-27  本文已影响0人  一车小面包人

测试函数myTest()

#定义重复执行的测试函数:myTest()
def myTest(a):
        print("my name is"+a)
#定义实参
name=[" Tony"," Anna"," Daier"]

传统方法多次使用测试函数

>>>myTest(name[0])
>>>"my name is Tony"
>>>myTest(name[1])
>>>"my name is Anna"
>>>myTest(name[2])
>>>"my name is Daier"

使用多线程来并行运行测试函数

1.使用threading.Thread方法

from threading import Thread
threads=[]
class myThread(threading.Thread): #定义一个继承threading的类
        def __init__(self,func,args):
                Thread.__init__(self)
                self.func=func  #多次执行的函数
                self.args=args #待执行函数的参数
        def run(self):
                self.func(*self.args)
for _ in name:
        threads.append(myThread(myTest,(_)))
        threads[-1].start()  #开始执行此线程
for thread in threads:
        thread.join() #等待线程结束

2.使用ThreadPoolExecutor()方法

from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=5) as exe: #max_workers是线程数目
        exe.map(myTest,name)  
#exe.map(a,b)第一个参数a为重复执行函数,第二个参数b为执行函数的实参列表

3.线程锁

threadLock=threading.Lock()
threadLock.acquire()
待锁的变量或者操作
threadLock.release()
上一篇下一篇

猜你喜欢

热点阅读