====第三章.异步I/O====
1.PHP从头到脚都是以同步阻塞的方式来执行的.缺点在小规模站点中基本不存在,但是在复杂的网络应用中阻塞无法更好的发挥.
2.Node:伴随异步I/O(非阻塞i/O),事件驱动,单线程
3.Nginx 具备面向客户端管理连接的强大能力
4.I/O:不管是内存,硬盘还是网络都十分的消耗性能
5.多线程的代价在于创建和执行线程,上下文切换开销较大
6.单线程顺序执行任务的方式比较符合编程人员的思考顺序.但是串行编程的缺点在于性能,任意一个慢的任务都是导致后续执行的代码被阻塞,在计算机资源中通常I/O与CPU计算之间是可以并行进行的
7.Node提供了类似前端浏览器中WEB Workers的子进程,该子进程可以通过工作进程高效的利用CPU和I/O
8完成整个异步I/O环节的有事件循环,观察者和请求对象
9.在javascript是单线程的,Node自身起始是多线程的,只是I/O线程使用的PCU较少,拎一个需要重视的观点是除了用户代码无法并行执行外,所有的I/O(磁盘I/O网络I/O)都是可以并行起来的
node-webkit
10.Web Workers能够创建工作线程来进行计算,用来解决Javascript大量计算阻塞UI渲染的问题;工作线程为了不阻塞主线程,通过消息传递的方式来传递运行结果.
Node采用了Web Workers相同的思路来解决单线程中大量计算的问题:child_process.通过将计算分发到各个子进程,可以将大量的计算分解掉,然后通过进程之间的消息来传递结果,这可以很好的保持应用模型的简单和低依赖;通过master-worker的管理方式,也可以很好的管理各个工作进程
11.commonJS规范:模块,二进制,Buffer,字符编码集,I/O流,进程环境,文件系统,套接字,单元测试,WEB服务器,网关接口,包管理
12.C/C++扩展模块 编写 编译 加载 导出
13.浏览器 commonJS W3C Node