2017年3月12日

开启线程池和进程池

摘要: 线程与进程的应用场合很多,主要处理并发与多任务。然而,当开启的线程与进程过多时,系统的开销过多会造成性能低下甚至崩溃。这时,希望出现一种方法能规定只能执行指定数量线程与进程的策略。特别是针对不知道要开启多少线程或进程,而有可能出现线程或进程过多的情况。于是,线程池与进程池出现了。python3以后增 阅读全文

posted @ 2017-03-12 18:25 科幻vs现实 阅读(1810) 评论(0) 推荐(0) 编辑

单例模式

摘要: 使用new方法实现单例模式 每个实例的创建是通过__new__方法,所以如果要实现一个类只能有一个实例就得重写__new__函数。 执行: 输出为: 执行: 输出为: 执行: 输出: 使用共享属性实现单例模式 与上一种方法不同的是,此种方法当执行__new__方法后,每次生成一个新的实例。只不过每个 阅读全文

posted @ 2017-03-12 18:24 科幻vs现实 阅读(256) 评论(0) 推荐(0) 编辑

并发编程之线程与锁

摘要: 线程是操作系统调度的最小单位,随着多核处理器的流行多线程编程成为能有效发挥cpu潜能的利器(python除外)。线程之间的内存是共享,所以创建一个线程所需要的开销比创建一个进程的开销要小得多。抛开硬件层面,多线程也给我们提供同时执行多个任务的手段(并发编程),使得我们能有另一种编程思维。python 阅读全文

posted @ 2017-03-12 18:24 科幻vs现实 阅读(617) 评论(0) 推荐(0) 编辑

伪私有属性的意义

摘要: 抛开语言层面,在通常的面向对象编程中(典型的C++),类都有私有属性。这是为了封装自己的属性,并且保证不会被外界调用修改而只能自己的方法调用修改。由于动态语言的特性,python中不存在严格封装特性,可以在外界随意调用类中任何属性和方法。一般我们想在类中申明一些不想被外界调用的私有属性时,通常约定俗 阅读全文

posted @ 2017-03-12 18:23 科幻vs现实 阅读(356) 评论(0) 推荐(0) 编辑

为什么要使用nonlocal

摘要: Python3中加入了新的关键字nonlocal,当在一个嵌套的函数中对变量申明为nonlocal时,就明确表示这个变量是外部函数中定义的变量。也许会有这么一个问题:按照python的LEGB原则,在函数本地作用域找不到变量的情况下,解释器会自动在外层函数寻找,nonlocal关键字岂不是显得多余? 阅读全文

posted @ 2017-03-12 18:22 科幻vs现实 阅读(7999) 评论(0) 推荐(3) 编辑

导航