Python 是一门最受欢迎的编程语言之一,它受到了许多开发者的青睐。Python 具有许多令人振奋的特性和功能,使其成为一个舒适和强大的语言。然而,有一个最好的 Python 功能,你却不能使用它!

我们来看看这个困扰了 Python 开发者多年的功能:Concurrency(并发)。

在 Python 中,Concurrency 是一个麻烦的问题。如果我们想做一两件事情,那么使用Python是一个不错的选择。但是,如果我们想要同时做很多事情,那 Python 就表现出了它的弱点。

Python 解释器的全局解释锁(GIL)是这个问题的根源。GIL 可以确保在任何时候只有一个线程可以执行 Python 代码。这样做可以保护 Python 解释器免受并发问题的影响,但同时它也限制了 Python 的并发性能。

虽然有许多解决方案来缓解 Python 的并发问题,但它们每一个都有它们自己的问题。这就是为什么 Python 开发者总是在与并发问题搏斗的原因。

但这并不是说 Python 没有并发的支持。最近,Python 3.5 引入了一个新的语法功能:async/await 关键字,也称为协程。协程使得在 Python 中运行并发任务变得更加容易。

使用协程,我们可以同时执行数百个任务,并且几乎不需要任何线程或进程。我们可以将一个任务分成多个 mini-tasks,每个 mini-task 都等待 I/O 操作。这样,当一个 mini-task 准备好时,它就会在事件循环中得到调度,从而保证它的运行在不阻塞其他 mini-tasks 的同时。

由于协程的简单和高效,现在越来越多的 Python 库都有协程支持。许多人认为,协程将是未来 Python 开发的必要技术。

尽管协程使得并发编程变得更加容易,但是现在很少有 Python 开发者使用它。这大部分是因为 Python 开发者需要花时间来学习新的语法结构。尽管这些语法复杂性远低于 C 或 C++ 中的异步和 Thread 机制,但是从 Python 已经掌握的语言结构转换到协程的语法需要一段时间。

结论

协程是 Python 的一项强大功能,它在 Python 3.5 中被引入。尽管协程使得并发编程变得更加容易,但是现在很少有 Python 开发者使用它。花一些时间去学习这个功能,可以让你成为一个更好的 Python 开发者,也可以帮助你在未来编写更高效和更健壮的 Python 代码。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/