一 进程池与线程池 在刚开始学多进程或多线程时,我们迫不及待地基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是:服务的开启的进程数或线程数都会随着并发的客户端数目地增多而增多,这会对服务端主机带来巨大的压力,甚至于不堪重负而瘫痪,于是我们必须对服务端开启的进程数或线程数加以控制, ...
分类:
编程语言 时间:
2018-11-19 16:15:43
阅读次数:
157
Author: 楚格 2018-11-17 17:34:58 IDE: Pycharm2018.02 Python 3.7 KeyWord : 线程 threading Thread Explain: -- -- ...
分类:
编程语言 时间:
2018-11-17 19:14:34
阅读次数:
172
1..网络IO的两个阶段 waitdata :网络传输的等待时间 Copydata:应用程序复制到系统内存的时间 2.阻塞IO模型 多线程 多进程 还是 线程池 进程池等 都是阻塞 3.非阻塞IO模型 在非阻塞io中 需要不断循环询问操作是否有需要处理的数据 这一来 对应程序而言 效率确实高 但是操 ...
分类:
其他好文 时间:
2018-11-14 22:39:42
阅读次数:
173
1.网络IO的两个阶段 waitdata copydata send 先经历:copydata阶段 recv 先经历:waitdata阶段 再经历 copydata阶段2.阻塞的IO模型 之前写的都是阻塞 无论多线程 多进程 还是进程池 线程池3.非阻塞IO模型 非阻塞:最直接的体现 所有和读写相关 ...
分类:
其他好文 时间:
2018-11-14 21:00:07
阅读次数:
222
GIL1.全局解释器锁? 锁就是线程里面那个锁 锁是为了避免资源竞争造成数据的错乱2.python程序的执行过程? 1.启动解释器进程 python.exe 2.解析你的py文件并执行它每个py程序中都必须有解释器参与,解释器其实就是一堆代码相当于多个线程要调用同一个解释器代码,共享以为竞争,竞争就 ...
分类:
编程语言 时间:
2018-11-12 21:45:07
阅读次数:
180
#GIL (global interpreter Lock)#全局解释器锁 :锁是为了避免资源竞争造成数据错乱#当一个py启动后 会先执行主线程中的代码#在以上代码中有启动了子线程 子线程的任务还是执行代码#解释器在一个进程中只有一个(解释器也是一堆代码)#主线和子线都要去调用解释器,就存在了竞争关 ...
分类:
系统相关 时间:
2018-11-12 13:18:06
阅读次数:
112
一、进程: Python的os模块封装了常见的系统调用,其中就包括fork。而fork是linux常用的产生子进程的方法,简言之是一个调用,两个返回。 在python中,以下的两个模块用于进程的使用。详细就不展开。 multiprocessing:跨平台版本的多进程模块。 Pool:进程池 Queu ...
分类:
编程语言 时间:
2018-11-10 15:21:22
阅读次数:
184
```python
import multiprocessing as mp
from time import sleep import os def worker(msg): sleep(2) print(msg) return "worker return" + msg #创建进程池对象 ,进程... ...
分类:
系统相关 时间:
2018-11-09 20:53:29
阅读次数:
205
Python标准库为我们提供了threading(多线程模块)和multiprocessing(多进程模块)。从Python3.2开始,标准库为我们提供了concurrent.futures模块,它提供了 ThreadPoolExecutor 和 ProcessPoolExecutor 两个类,实现 ...
分类:
编程语言 时间:
2018-10-29 22:54:26
阅读次数:
176
# concurrent.futures模块提供了高度封装的异步调用接口。 # 其中ThreadPoolExecutor:线程池,提供异步调用 # 其中ProcessPooExecutor:进程池,提供异步调用。之前学过multiprocessing中的Pool也是进程池。 # 在这个concurr... ...
分类:
编程语言 时间:
2018-10-28 15:00:47
阅读次数:
180