一、了解Unix网络编程5种I/O模型 1.1、阻塞式I/O模型 阻塞I/O(blocking I/O)模型,进程调用recvfrom,其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误才返回。进程从调用recvfrom开始到它返回的整段时间内是被阻塞的。 1.2、非阻塞式I/O模型 ...
分类:
编程语言 时间:
2020-05-02 22:53:19
阅读次数:
81
1.基本介绍 http://nodejs.cn/api/ Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境 Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效 事件驱动: 任务执行,发布者,订阅者,事件驱动 . 非阻塞: 执行某一个任务的同时也可以 ...
分类:
Web程序 时间:
2020-05-02 16:58:59
阅读次数:
84
java NIO包括了以下几个核心部分: Channel Buffer Selector java NIO是非阻塞IO,比如:线程请求把channel中的数据读入到buffer,当channle执行读数据到buffer时,线程可以去做其他事,不用一直等它。一旦数据读入缓冲区,线程就可以继续处理它。同 ...
分类:
编程语言 时间:
2020-05-01 18:52:45
阅读次数:
83
什么 nodejs 是构建在 Chromes V8 引擎上 js 的运行环境,可以解析javaScript 代码。 javaScript 可以脱离浏览器运行,归功于node.js 事件驱动,非阻塞I/O 模型 (异步) nodejs npm 是世界上最大的开源生态系统 javaScript 绝大多数 ...
分类:
Web程序 时间:
2020-05-01 16:51:39
阅读次数:
74
邮箱与消息队列: 邮箱:开销小,效率高(每次4字节,32位任意值或指向缓冲区的指针),相当于MQTT中的代理。一(发)对多(收)关系; 分阻塞(邮箱不存在或超时参数不为0)和非阻塞(中断与线程间发送消息的有效手段) 发送满等待与接收空等待。 创建邮箱:分配内存大小=邮件数*4 /* 邮箱控制块 */ ...
分类:
编程语言 时间:
2020-05-01 16:37:42
阅读次数:
87
一、自旋锁与互斥锁 java中的锁整体分为两大类,基于synchronized关键字的互斥锁和基于CAS操作的自旋锁 synchronized:串行执行阻塞的、用户态内存态切换的重量级锁。(监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的) CAS:非阻塞的自旋、线程上下文切换 异 ...
分类:
编程语言 时间:
2020-04-30 19:29:42
阅读次数:
101
多进程模块: multiprocessing Process 1 如何开启多进程及多进程相关常用方法 并行: 并发: 早期单核cpu时候,没有并行的概念,只有并发(微观上串行,宏观上并行) 同步 异步 阻塞 非阻塞 ...
分类:
系统相关 时间:
2020-04-28 23:22:03
阅读次数:
70
IO模型简介 """ 我们这里研究的IO模型都是针对网络IO的 Stevens在文章中一共比较了五种IO Model: * blocking IO 阻塞IO * nonblocking IO 非阻塞IO * IO multiplexing IO多路复用 * signal driven IO 信号驱动 ...
分类:
其他好文 时间:
2020-04-28 16:50:26
阅读次数:
53
Python来实现并发的Web Server,其中采用了多进程、多线程、协程、单进程单线程非阻塞的方式。 一、使用子进程来实现并发Web Server 参照 https://www.cnblogs.com/leokale-zz/p/11949208.html 中的代码,我们将其修改为支持并发的简单W ...
分类:
编程语言 时间:
2020-04-27 19:24:03
阅读次数:
58
手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出 ...
分类:
编程语言 时间:
2020-04-27 17:32:58
阅读次数:
47