最近做appium自动化,想同时控制多台手机,所以需要获取每个手机的driver返回值。
同时这个问题,当然首先想到用多线程,跟着写了个Python多线程的demo,大概知道怎么用了,但是发现一个问题,没法取到每个线程的返回值.
于是又开始搜啊搜,重写一下Thread类似乎可以解决,但是还是有诸多不确定因素,故又写了个小demo确定一下:
demo代码如下:
import threading
import time
class MyThread(threading.Thread):
def __init__(self, func, args=()):
super(MyThread, self).__init__()
self.func = func
self.args = args
def run(self):
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result
except Exception:
return None
def add():
print("add")
time.sleep(4)
result1 = 5
result2 = 5
return result1, result2
def add2():
print("add2")
time.sleep(2)
result1 = 2
result2 = 2
return result1, result2
if __name__ == '__main__':
data