python 线程相关问题:多线程是否会影响子进程里面的print 操作
大概描述一下我的问题:[*]创建了一个线程,线程内是能够正常运行的unittest框架的测试脚本
[*]测试脚本内加了一个print 操作,线程和线程内测试脚本都正常执行完成,但相关的变量没有print出来
[*]原本猜测可能和unittest有关,但去掉外层的线程创建之后,变量能正常打印,
[*]所以猜测是否和多线程有关,多线程是否会有相关的影响?
猜测可能是这个原因,还在持续调试中,麻烦帮看看,谢谢
注:当前只创建了一个线程,之所以使用多线程,是有多个线程同步执行case的需求
[*]部分代码如下:
#执行case 和多线程创建部分的代码
def run_case():
cur_thread_name = threading.current_thread().name
report_name = Path.date_time + '_' + cur_thread_name + 'Report.html'
testlist = unittest.defaultTestLoader.discover(
start_dir=Path.testcase_path_x_mac
, pattern='test*.py')
result = BeautifulReport(testlist)
result.report(filename=report_name, description='Result of test', log_path=Path.report_path)
class myThread(threading.Thread):
def __init__(self, thread_id, name):
threading.Thread.__init__(self)
self.thread_id = thread_id
self.name = name
def run(self):
print('开启线程:' + self.name + '\n')
run_case()
print('退出线程:' + self.name)
if __name__ == '__main__':
thread_list = []
for i in range(len(ListData.node_list)):
thread_name = ListData.node_list
new_thread = myThread(i, thread_name)
thread_list.append(new_thread)
for thread in thread_list:
thread.start()
for thread in thread_list:
thread.join()
[*]部分执行case 部分,加了个print
可以下断点调试下 https://blog.csdn.net/weixin_39585974/article/details/111010847 参考这个看看 要看多线程调用是否会使用相同的资源
页:
[1]