threading
在 Hacker News 上看到的资讯,目前有一位开发者最近实作出PoC版本的CPython multi-threading。 而会这么说,主要是因为目前的Python在multi-thread方面的发展,还是受限于GIL(global interpreter lock)的影响,所以实际上在执行时,只会有一个thread 在运作。 而会有这样的设计,也是跟GC(Garbage Collection)有比较大的关系,因为Python的GC是采用reference count的原理,当一个物件不再被任何其它物件所使用时,它就会是可以被回收的
Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在爬虫案例中,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和销毁,线程的创建是需要消耗系统资源的,有没有更好的方案呢?其实只需要三个线程就行了,每个线程 我们都知道计算机是由硬件和软件组成的。硬件中的 CPU 是计算机的核心,它承担计算机的所有任务。操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配、任务的调度
完成了上一个版本,我们会发现,根本聊不起来啊! 问题的关键在于,我们现在的程序,一次只能干一个事情,你让我等待输入了,我就不能好好输出了。 所以我们需要在此引入多线程的概念,多线程的概念,简单的来说,就是,我因为只有一个人,你让我去干一件事还可以,两件事我不行,那多加一个人,总可以干了。 那么阻塞呢,意思就是说:由于我干了这个,不能干那个,我们把这个现象叫做阻塞
几乎在英特尔推出含有HT技术的奔腾4处理器的同时,实达电脑发布了最新研制开发的高端家用电脑产品——时代经典9000,该款产品支持英特尔的最新HT(Hyper-Threading:超线程)技术,能够支持用户在同一台电脑上,同一时间做更多的事情,实达电脑率先进入3G时代。HT(Hyper-Threading:超线程)技术使得电脑的操作系统软件及应用软件误以为电脑中有两个芯片,对于某些软件而言,可以使其整体性能提高25%,仅用一个芯片就能起到两个芯片的作用,这样做不仅可以提高应用程序的运行速度,而且还可以避免计算机在同时运行多个应用程序时死机。
在 Hacker News 上看到的资讯,目前有一位开发者最近实作出PoC版本的CPython multi-threading。 而会这么说,主要是因为目前的Python在multi-thread方面的发展,还是受限于GIL(global interpreter lock)的影响,所以实际上在执行时,只会有一个thread 在运作。 而会有这样的设计,也是跟GC(Garbage Collection)有比较大的关系,因为Python的GC是采用reference count的原理,当一个物件不再被任何其它物件所使用时,它就会是可以被回收的