不添加join子线程也会执行
老师,不添加join,返回到结果一样,时间还更短。
if __name__ == '__main__': start = time.time() print('old list lenth:', len(lists)) # 线程调用 # t_list = [] for i in range(len(lists)): # 普通函数调用 # work() # 用时大概7秒 # 创建线程 t = threading.Thread(target=work) # 将线程对象添加到列表 # t_list.append(t) # 启动线程 t.start() # 阻塞主线程 # for t in t_list: # t.join() print('old list:', lists) print('new list:', new_lists, len(new_lists)) print('time is %s' % (time.time() - start))
old list lenth: 7 old list: [] new list: ['flask_new', 'tornado_new', 'python_new', 'django_new', 'bs5_new', 'uvloop_new', 'requests_new'] 7 time is 0.0009450912475585938 Process finished with exit code 0
18
收起
正在回答
1回答
同学,你好!不阻塞主线程,程序运行的速度是比较快的。但是不阻塞主线程可能有一种情况出现,即:主线程比子线程先执行完程序,这样子线程的功能就没有执行,所以建议阻塞主线程。祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星