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

    Python 学习入门(0)—— 简明教程

    朋友问我怎么能快速地掌握Python。 我想Python包含的内容很多,加上各种标准库,拓展库,乱花渐欲迷人眼,就想写一个快速的Python教程,一方面 保持言语的简洁,另一方面循序渐进,尽量让没有背景的读者也可以从基础开始学习。另外,我在每一篇中专注于一个小的概念,希望可以让人可以在闲暇时很快读完。  小提醒  1. 教程将专注于Python基础,语法基于Python 2.7,测试环境为Linux, 不会使用到标准库之外的模块。  2. 我将专注于Python的主干,以便读者能以最快时间对Python形成概念。  3. Linux命令行将以 $ 开始,比如 $ls, $python  4. Python命令行将以 >>> 开始,比如 >>>print 'Hello World!'  5. 注释会以 # 开始  建议  1. 将教程中的命令敲到Python中看看效果。  2. 看过教程之后,可以进行一些练习。  ===============================================  Python基础01 Hello World!  Python基础02 基本数据类型  Python基础03 序列  Python基础04 运算  Python基础05 缩进和选择  Python基础06 循环  Python基础07 函数 Python基础08 面向对象的基本概念 Python基础09 面向对象的进一步拓展  Python基础10 反过头来看看 Python进阶01 词典  Python进阶02 文本文件的输入输出  Python进阶03 模块  Python进阶04 函数的参数传递  Python进阶05 循环设计  Python进阶06 循环对象  Python进阶07 函数对象  Python进阶08 错误处理  Python进阶09 动态类型  Python快速教程总结

    03

    Python多核编程分析

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

    02

    经验拾忆(纯手工)=> Python三

    GIL这个话题至今也是个争议较多的,对于不用应用场景对线程的需求也就不同,说下我听过的优点: 1. 我没有用过其他语言的多线程,所以无法比较什么,但是对于I/O而言,Python的线程还是比较高效的。 2. 有些第三方基于Python的框架和库,比如Tensorflow等基于C/C plus plus重写的Python线程机制。 3. 至于换成Cython编译器解决GIL,这个只是听过,没用过。 4. Python多线程对于web、爬虫方面也可以表现出较好的性能。 5. Python多进程是完好的,可以把资源消耗较少的非必要线程工作转为多进程来工作。 6. 计算密集型就别想多线程了,一律多进程。 7. Python还有细粒度且高效的协程。 8. 如果有N核CPU,那么同时并行的进程数就是N,每个进程里面只有一个线程能抢到工作权限。 所以同一时刻最大的并行线程数=进程数=CPU的核数(这条我的个人理解很模糊,参考吧)

    01
    领券