不添加join子线程也会执行
老师,不添加join,返回到结果一样,时间还更短。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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)) |
1 2 3 4 5 | 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全能工程师
- 参与学习 人
- 提交作业 16317 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧