Python多线程-阻塞主线程

写在前面:

前面已经有Scala实现多线程了,那么用Python实现多线程又有什么区别和好处?

Scala里实现多线程,启的是同一个Application,计算多线程任务的task都是同时返回到driver中进行管理。而这些task的完成情况和状态管理会一直保存在driver中,直到Application结束。如果模型迭代次数很多,或者需要写循环来做多次计算时,这很容易导致driver的内存溢出。

所以,为了同时实现多线程,而又不至于让Application任务太大、task太多、driver内存溢出,使用python来控制多线程,每个线程提交一个spark任务来实现一个训练任务。

当然这适用于好拆分成多个独立任务的场景。大家自己根据实际业务场景来选择。

Scala多线程之任务的异同、同步执行实践_Toby的博客-CSDN博客

python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon) - 隔壁的王先森 - 博客园


1、python实现多线程控制代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2021/9/26 12:02

你可能感兴趣的:(Scala开发日志,spark,python,spark)