上一页 1 ··· 168 169 170 171 172 173 174 175 176 ··· 234 下一页

2018年12月19日

python(二):使用multiprocessing中的常见问题

摘要: 简介在python的解释器中,CPython是应用范围最广的一种,其具有丰富的扩展包,方便了开发者的使用。当然CPython也不是完美的,由于全局解释锁(GIL)的存在,python的多线程可以近似看作单线程。为此,开发者推出了multiprocessing,这里介绍一下使用中的常见问题。 环境>> 阅读全文

posted @ 2018-12-19 12:16 ExplorerMan 阅读(532) 评论(0) 推荐(0)

2018年12月18日

Process类,Thread类,Pool类,gevent类,ProcessPoolExecutor,ThreadPoolExecutor的用法比较

摘要: 一 Process类 multiprocessing模块下的一个类 创建子进程。 有两种方法 方法一 输出: 方法二 输出: 二 Thread类 threading模块下的类 创建线程 有两种方法 与Process类一样。 三 Pool类 Pool类的方法: p=Pool() p.apply_asy 阅读全文

posted @ 2018-12-18 18:10 ExplorerMan 阅读(563) 评论(0) 推荐(0)

python并发之concurrent.futures

摘要: concurrent:并发 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码。从Python3.2开始,标准库为我们提供了concurrent.futures模块,它提供了ThreadPoolExecutor和ProcessPoolEx 阅读全文

posted @ 2018-12-18 18:07 ExplorerMan 阅读(296) 评论(0) 推荐(0)

单线程实现并发——协程,gevent模块

摘要: 一 并发的本质 1 切换 2 保存状态 二 协程的概念 协程,又称微线程,纤程。英文名Coroutine。单线程下实现并发,用户从应用程序级别控制单线程下任务的切换,注意一定是遇到I/O才切。 协程的特点在于是一个线程执行,那和多线程比,协程有何优势? 最大的优势就是协程极高的执行效率。因为子程序切 阅读全文

posted @ 2018-12-18 18:07 ExplorerMan 阅读(283) 评论(0) 推荐(0)

Twisted 简介

摘要: Twisted是用Python实现的基于事件驱动的网络引擎框架,Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。就像Python一样,Twisted也具有“内置电池”(batteries-included)的特点。Twi 阅读全文

posted @ 2018-12-18 18:05 ExplorerMan 阅读(351) 评论(0) 推荐(0)

Python进程、线程、协程的对比

摘要: 1. 执行过程 每个线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在进程中,由进程提供多个线程执行控制。每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。 协程,又称微线程,Coroutine。执行过程 阅读全文

posted @ 2018-12-18 18:04 ExplorerMan 阅读(561) 评论(0) 推荐(0)

协程的优点(Python)

摘要: 协程的优点: 协程是进程和线程的升级版,进程和线程都面临着内核态和用户态的切换问题而耗费许多切换时间, 而协程就是用户自己控制切换的时机,不再需要陷入系统的内核态。协程的执行效率非常高。因为子程序切换不是线程切换,而是由程序自身控制。因此,没有线程切换的开销,和多线程相比,线程数量越多,相同数量的协 阅读全文

posted @ 2018-12-18 18:01 ExplorerMan 阅读(954) 评论(0) 推荐(0)

python concurrent.futures

摘要: python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算。这个论断我们不展开,但是有个概念我们要说明,IO密集型 vs. 计算密集型。 IO密集型:读取文件,读取网络套接字频繁。 计算密集型:大量消耗CPU的数学与逻辑运算,也就是我们这里说的平行计算。 而concurrent.futur 阅读全文

posted @ 2018-12-18 17:52 ExplorerMan 阅读(367) 评论(0) 推荐(0)

gevent 协程 使用

摘要: Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成 阅读全文

posted @ 2018-12-18 17:46 ExplorerMan 阅读(292) 评论(0) 推荐(0)

python高性能代码之多线程优化

摘要: 以常见的端口扫描器为实例 端口扫描器的原理很简单,操作socket来判断连接状态确定主机端口的开放情况。 这是一个socket扫描器的基本代码。 但是如果直接运行会等待很长时间都没有反应,这是因为socket是阻塞的,到等待每个连接超时后才会进入下一个连接。 给这段代码加一个超时 完整的代码如下 本 阅读全文

posted @ 2018-12-18 17:38 ExplorerMan 阅读(1013) 评论(0) 推荐(0)

上一页 1 ··· 168 169 170 171 172 173 174 175 176 ··· 234 下一页

导航