首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python多核编程分析

    之前一直都用python的多线程库(比如threading)来写一些并发的代码,后来发现其实用这个方法写的程序其实并不是真正的并行(parrallel)计算,而只是利用单个CPU进行的并发(concurrency)计算。因此,多线程也仅仅只在处理一些被频繁阻塞的程序时才会有效率上的提升,比如网络爬虫里等待http返回等;而在CPU使用密集的程序里使用多线程反而会造成效率的下降。那么为什么python不把threading库设计成并发的线程呢?这是因为python本身有一个全局翻译锁,叫GIL(Global Interpreter Lock),这个锁的目的是让当前的python解释器在同一时间只能执行一条语句,从而保证程序的正确运行,这也就导致了一个python解释器只能并发处理而不能并行处理。那么,如果想并行的执行代码,显然需要开启多个python解释器,这也就不是多线程,而是多进程了,因此python在多线程库里并不支持多核处理,而是在多进程库(multiprocessing)里支持多核处理。

    02

    循环结构for

    教程: 高能:语句结构都是由关键字开头,用冒号结束!     一:语句结构 for <variable> in <sequence>:     <statements> else:                # else可有可无     <statements> 二:基本规则     (1)使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。     (2)sequence可以是任何序列的项目,如一个列表或者一个字符串。 三:条件为真     不为 0, True, 'None', 字符串不为空串 四:range函数     range(start, end, scan)           start计数开始的位置           end计数结束的位置           scan每次跳跃的间隔     经常用到的地方是遍历一个数字列表的时候 五:循环嵌套 六:continue和break

    03
    领券