python为什么不解除gil 为什么python的GIL问题一直让人诟病,python社区却不解决?
为什么python的GIL问题一直让人诟病,python社区却不解决?
吉尔,这把大锁,今天仍然存在。这是有道理的。首先,我们知道Python是一种解释性语言,代码执行是在解释器中执行的。解释性语言不能实现真正的多线程并发是一个常见的问题。这是先天的。多个线程共享主进程资源。如果线程没有被锁定,线程是并发的,并且多个线程修改共享数据,就会导致数据混淆,这是不可靠的。因为解释器不知道在哪里修改代码中的共享数据,所以它直接锁定线程。解释器一次只允许运行一个线程。
当然,您可能会说,我只要求解释器锁定要修改的共享数据,这样多线程就可以真正并行了?事实上,一个大老板在国外做这件事已经很久了。测试结果表明,执行效率不如直接锁定线程。到目前为止,python开发团队还没有针对这个问题提出更好的解决方案。这是解释性语言的通病。另外,这个问题很难解决。
虽然Gil大锁的存在影响了多线程,不能实现真正的并发,但我们可以用多进程来解决。
作为一名研究生,除了可以用python写各种算法之外,还应该如何提高自己的python水平?
作为一名研究生,您用Python编写算法。我认为你想发展大数据和人工智能。
近年来,随着大数据和人工智能的爆炸式发展,Python变得越来越流行。如果你想提高你的Python水平,我想你可以从以下几点开始
!Apache spark是一个大数据处理框架,计算速度快,使用方便,支持复杂分析,有可能取代MapReduce。
尽管Python在机器学习和人工智能方面有很好的应用,但Python有一个很大的缺陷。它不支持分布式计算,但这并不重要。Spark提供了一个优秀的Python接口pyspark。有了它,python在分布式计算和流计算方面有了很大的改进。
另外,spark的核心RDD弹性分布式数据集与Python中panda的数据帧非常相似,可以很容易地相互转换。因此spark赋予Python以分布式方式处理大型数据集的能力。
Python有许多强大的web后端框架,如Django、flash等。学习这一点可以巩固Python的基础,并使用Python的高级用法,如装饰器、类、魔术方法、数据库等。
您不能总是在一台机器上使用该型号。您可以在大数据框架和网站中部署模型。这要求您了解后端和分布式计算。学习这两个方面,不仅可以提高python的水平,也可以让你在未来的大数据和人工智能领域发力。
python为什么不解除gil cuda支持列表 cuda编程 有必要吗
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。