$file = "example.txt"; //10万行数据 功能:读取文件中的每一行并输出 方法一:常规方法 $fp = fopen($file,"r"); while(!feof($fp)){ $line = fgets($fp,1024); } fclose($fp); 使用内存:240 b ...
分类:
Web程序 时间:
2017-08-17 20:15:49
阅读次数:
232
1. IO 操作不占用CPU(从硬盘读数据,从网络读数据,从内存读取数据) 计算占用CPU,例如1+1=2的计算就是占用CPU的。 python 多线程,不适合CPU密集操作系统的任务,适合IO操作密集型的任务。 2. 进程、线程和协程之间的关系和区别也困扰我一阵子了,最近有一些心得,写一下。 进程 ...
分类:
编程语言 时间:
2017-08-17 10:47:50
阅读次数:
194
转自 http://blog.leiqin.info/2012/12/02/%E8%BF%9B%E7%A8%8B-%E7%BA%BF%E7%A8%8B%E5%92%8C%E5%8D%8F%E7%A8%8B%E7%9A%84%E7%90%86%E8%A7%A3.html 进程、线程和协程的理解 进程、 ...
分类:
编程语言 时间:
2017-08-17 10:47:15
阅读次数:
272
协程(纤程,微线程)这个概念早就有之,各家互联网公司也都有研究,但在国内各大论坛和大会热起来,还是今年的事。 最近参与讨论开放平台建设和架构设计过程中,有同事提到了使用协程代替线程,能够很大幅度的提高性能。这引发了我们团队极大的兴趣和激烈的讨论。 首先,说明一下什么是协程。 协程是用户态的线程。传统 ...
分类:
Web程序 时间:
2017-08-17 10:27:31
阅读次数:
217
论事件驱动与异步IO 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求。(启动一个协程) 上面的几种方式 ...
分类:
其他好文 时间:
2017-08-16 15:23:46
阅读次数:
144
协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。 线程切换的时候会保存到CPU里面。 因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上 ...
分类:
其他好文 时间:
2017-08-16 09:55:43
阅读次数:
113
协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。 线程切换的时候会保存到CPU里面。 因此: 协程能保留上一 ...
分类:
其他好文 时间:
2017-08-15 15:57:41
阅读次数:
137
版本:0.12.13 使用了with属性 使用了gevent来实现协程gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于切换是在IO操作时 ...
分类:
编程语言 时间:
2017-08-15 11:28:35
阅读次数:
210
进程间通信 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的。 进程队列queue 不同于线程queue,进程queue的生成是用multiprocessing模块生成的。 在生成子进程的时候,会将代码拷贝到子 ...
分类:
编程语言 时间:
2017-08-14 20:13:54
阅读次数:
313
代码如下: 这叫协程,又叫微线程。 运行结果如下: ...
分类:
编程语言 时间:
2017-08-13 16:16:45
阅读次数:
139