一、协程: 1、生成器只有在调用时才会生成相应的数据 2、调用方式有 " str__next__.() str.send() ", 3、并且每调用一次就产生一个值调用到最后一个值后会报错 4、报错可用try和except做异常处理 注意: next:是直接调用yield,并不会传值。 send:是调 ...
分类:
编程语言 时间:
2017-12-25 19:37:40
阅读次数:
140
本节内容 1、多进程multiprocessing Python的线程用的是操作系统的原生线程,同样python的进程用的是操作系统的原生进程。 多进程之间没有锁的概念,多进程之间数据不能互相访问,所以不存在互斥锁。GIL问题又是仅仅出现在多线程中。 所以如果我们启动8个进程,每个进程有一个主线程, ...
分类:
编程语言 时间:
2017-12-07 00:26:16
阅读次数:
213
通常我们写服务器模型,有以下几种模型: 以上几种方式,各有千秋: 第1种方式,由于创建新的进程开销比较大,所以会导致服务器性能比较低,但实现比较简单 第2种方式,由于要涉及到线程的同步,有可能会面临死锁等问题 第3种方式,在写应用程序代码时,逻辑比前面两种都复杂。 综合考虑因素,一般普遍认为第三种是 ...
分类:
其他好文 时间:
2017-12-06 00:55:08
阅读次数:
151
本节内容 1、进程与线程的概念 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。 在多道编程中,我们允许多个程序同时加载到内存中,在操作系 ...
分类:
数据库 时间:
2017-12-05 22:41:21
阅读次数:
285
关于异步IO,在Python3.4中可以使用asyncio标准库。该标准库支持一个时间循环模型(EventLoop),我们声明协程,然后将其加入到EventLoop中,即可实现异步IO。 Python中也有一个关于异步IO的很经典的HelloWorld程序(同样参考于廖雪峰教程): 1 # 异步IO ...
分类:
编程语言 时间:
2017-12-04 23:40:28
阅读次数:
227
最近看了一些有关 libuv 的东西,另外复习了一些与同步、异步、阻塞、非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到。 不多说了,本文是今后几篇《libuv 中文编程指南》的前言,先介绍下 libuv 究竟是干什么的吧,看看 开源中国 ...
分类:
其他好文 时间:
2017-12-03 22:51:56
阅读次数:
275
异步IO的雏形: 简单的单线程下的并行效果 ...
分类:
编程语言 时间:
2017-12-03 19:58:05
阅读次数:
289
转载:IO复用\阻塞IO\非阻塞IO\同步IO\异步IO 一、 什么是IO复用? 它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否有数据到来),需要内核能够监控这许多描述符,一旦这些 ...
分类:
其他好文 时间:
2017-11-27 15:19:39
阅读次数:
94
摘抄自廖雪峰Python教程 异步IO 异步IO模型需要一个消息循环,在消息循环中,主线程不断地重复“读取消息 处理消息”这一过程: 协程 又称微线程,Coroutine 协程切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程相比,线程数量越多,协程的性能优势越明显。 另一优势 ...
分类:
其他好文 时间:
2017-11-17 23:34:09
阅读次数:
433
1、node.js:概念介绍及安装 node.js:是一个基于chrome浏览器的v8引擎,可以运行javascript的环境(平台) 特性:异步IO模型 npm:是一个包管理器(工具),可以按装依赖插件应用场景:聊天、电子商务 优点:高并发且实时的情况下 性能高缺点:不适合用于大数据逻辑算法 安装 ...
分类:
其他好文 时间:
2017-11-17 18:26:12
阅读次数:
141