摘要:
1 生成器 yield关键字yield的中文文档在这里:http://php.net/manual/zh/language.generators.overview.php查看文档,能知道yield的一个功能就是能有效的降低迭代的内存开销。比如官网的这个xrange例子:12345678910111213141516171819这里的xrange是一个迭代,功能和range是一样的,如果使用range函数的话,那么函数内部实现会储存每个迭代的中间过程,即每个中间变量都有个内存空间,那么首先程序使用的内存空间就大了,而且分配内存,回收内存都会导致程序的运行时间加长。但是如果使用上yield实现的x 阅读全文
摘要:
1 并发很久很久以前是没有并发这个概念的,因为那个时候操作系统并不支持多任务。现在的操作系统今非昔比,支持抢占式任务、多线程、分页、TCP/IP等现代操作系统特性。能满足用户各种各样的需求同时响应用户的不同操作,靠的是多任务系统的支持。简单来说,多任务就是多个任务一起轮流的执行在操作系统上。这种执行方式在单处理器上给人同时执行的幻象,在多处理器上却是真正的并行。但问题是处理器的数目总是比进程数目少的多,也就是说总是有进程得不到执行。这个问题需要进程调度程序解决的。在此之前先解释下进程和线程。在Unix时代一个进程(执行中的程序)只有一个线程,现代操作系统允许一个进程有多条线程。这里需要具体解释 阅读全文