为什么有人说 Python 的多线程是鸡肋呢?

如题所述

首先,我并不认同这个观点,我觉得觉得Python 的多线程是鸡肋多余的人,应该还没有完全使用过Python 的多线程功能,并没有发掘它的潜在能力。

    什么是Python多线程

多线程指的是在我们操作的时候是可以同步执行多个任务,线程的特点是线程内部可以共享内存和变量,并且相比较而言可以消耗更少的资源。但是,在unix环境下,多进程与多线程之间的资源差距不明显,UNIX调度速度快。多线程的缺点就是线程之间的同步和锁定更麻烦。我们需要知道的是线程属于进程的一部分。

    Python多线程的特点

对于多线程来说,目前最为人所诟病的一点就是,它容易导致数据错乱,原因是因为,它在改变变量时共享数据会出现多个线程,并使用相同的资源,从而导致死锁和数据混乱。这也是它的最大的特点,可以在线程之间共享数据。

    Python多线程的优点

Python多线程最大的优点就是使用方便,很多时候我们并不需要做大量的密集型数据的处理运算,这时候用Python多线程是最方便快捷的,可以大大减少工作量、提高工作效率。

    总结

从以上几点我们就可以看出,Python多线程并不鸡肋,只是有时候使用者在不巧当的地方使用,它自然不是那么顺手,我们加深熟悉了解Python多线程的适用范围。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-21

我认为有以下几个方面的原因,仅限于个人看法。


多线程的作用

多线程目前仅用于网络多线程采集, 以及性能测试 。其他语言也有类似的情况,而且线程本身的应用程序范围很有限。只有CPU剩余,其他任务比较慢,在这一点上使用线程很好,这可以很好地平衡等待时间和提高并发性。

线程的问题所在

线程的问题主要是线程的安全性和稳定性。线程不能被迫中止,而线程与主进程共享内存,这可能影响主进程的内存管理。

python中的线程问题可能导致主进程的崩溃。尽管python中的线程是操作系统的真正线程。

如何解决这个问题

通过过程。在子进程崩溃之后,所有内存和错误条件都被完全释放。所以这个过程更安全。此外,python可以很好地绕过GIL,这是一个全局锁问题。但进步也是有限的。不要构建超过CPU总量的进程,否则它是无效的。

当我们想要实现多任务处理时,我们必须首先考虑使用多处理,但是如果我们觉得过程过于沉重,那么我们应该考虑使用线程。如果您过多地处理多任务处理,您可以考虑多个进程,每个进程将使用多个线程。如果仍然不使用,请使用轮询模式。

结语

因此,不要盲目地使用python中的线程,不要滥用它们。但线程不安全是一个事实。如果只是做一些后台任务,可以考虑使用守护线程。如果您需要做一些危险的工作,您可能会崩溃,并使用子流程。

相似回答