Node笔记五-进程、线程
进程
	  -每一个正在运行的应用程序都称之为进程
	  -每一个应用程序都至少有一个进程
	  -进程是用来给应用程序提供一个运行的环境
	  -进程是操作系统为应用程序分配资源的一个单位
线程
	  -用来执行应用程序中的代码
	  -在一个进程内部,可以有很多的线程
	  -在一个线程内部,同时只能干一件事情
	  -传统的开发方式大部分都是I/O阻塞的,需要多线程来个更好的利用硬件资源
	  -容易造成错觉>线程越多越好
多线程没落原因
	  -线程之间共享某些数据,同步某个状态都很麻烦
	  -创建线程耗费大量的资源和时间
	  -线程数量有限
	  -CPU只有一个(单核),因此多线程都是假的
	  -CPU在不同线程之间转换,有个上下文转换,这个转换非常消耗时间
非阻塞的优势
-提高代码的响应效率
-充分利用单核CPU的优势
-改善I/O的不可预测带来的问题
node在事件执行时顺序
-代码如下
  
-代码功能
--查询文件是否存在,若是文件不存在,则直接创建文件
      
--查询文件是否存在,若是文件存在,则先删除文件,再创建文件
      
-根据代码以及运行结果可以看出,代码执行时间很短,当遇到fs.stat之类的函数时,会将函数放置队列中等待执行。
-Node中将所有的阻塞操作交给了内部实现的线程池
-Node本身主线程主要就是不断的往返调度
web中的单线程
-node和php等语言存在一定的区别,node在web中是单线程执行的
  
执行上面的代码,每一个请求服务器,都会刷新count,
若是对代码进行修改
  
此时当请求页面次数count==8时,node就会进入死循环,使页面一直处于刷新状态,其他页面访问此端口也是如此。
Node笔记五-进程、线程的更多相关文章
- C#线程学习笔记五:线程同步--事件构造
		本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/23/Event_Constructor.html,记录一下学习过程以备后续查用. 前面讲的线 ... 
- APUE 学习笔记(五)  进程环境
		1.main函数 C程序总是从main函数开始执行,当内核执行C程序时,在调用main函数之前先调用exec函数从内核获取命令行参数和环境变量值 2.进程终止 正常终止: (1)在main函数内执 ... 
- Linux System Programming  学习笔记(五) 进程管理
		1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity in ... 
- 操作系统学习笔记----进程/线程模型----Coursera课程笔记
		操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ... 
- Python 进程线程协程 GIL 闭包 与高阶函数(五)
		Python 进程线程协程 GIL 闭包 与高阶函数(五) 1 GIL线程全局锁  线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的 ... 
- Linux进程线程学习笔记:运行新程序
		Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下 ... 
- java并发编程笔记(五)——线程安全策略
		java并发编程笔记(五)--线程安全策略 不可变得对象 不可变对象需要满足的条件 对象创建以后其状态就不能修改 对象所有的域都是final类型 对象是正确创建的(在对象创建期间,this引用没有逸出 ... 
- 关于linux的一点好奇心(五):进程线程的创建
		一直以来,进程和线程的区别,这种问题一般会被面试官拿来考考面试者,可见这事就不太简单.简单说一点差异是,进程拥有独立的内存资源信息,而线程则共享父进程的资源信息.也就是说线程不拥有内存资源,所以对系统 ... 
- python学习笔记-进程线程
		1.什么是进程(process)? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述 ... 
随机推荐
- Swing——动作(Action)
			本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41258997 Action接口扩展于ActionListe ... 
- Spring - IOC简介
			DI(Dependence Injection)依赖注入: userService依赖于容器注入的 这样拿的 这个过程由容器来控制,这个称为依赖注入. IOC(Inverse of control)控 ... 
- (九)UIScrollView和PageControl的分页
			涉及到内容的滚动与拖拽,使用UIScrllView. 对于滚动的多张图片,由于超出屏幕,应该使用代码添加代码. 添加的细节是:图片的宽高即为滚动视图的宽高,图片的y=0,x=图片的序号乘以图片的宽度. ... 
- Dynamics CRM Odata QueryUrl中的SetName问题
			用javasrcipt通过odata方式访问组织服务进行CRUD操作时,queryurl的正确拼接很关键. 以下面的url为例:"XX/XRMServices/2011/Organizati ... 
- Java之美[从菜鸟到高手演变]之设计模式四
			在阅读过程中有任何问题,请及时联系:egg. 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 转载请说明出处:http://blog.csdn.net ... 
- 推荐大家在GitHub 上值得关注学习的 iOS 开源项目
			GitHub上有很多不错的iOS开源项目,和大家特别推荐以下几个项目: 1. ReactiveCocoa GitHub链接:ReactiveCocoa/ReactiveCocoa GitHub自家的函 ... 
- mysql大小写敏感(默认为1,不敏感)
			在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感.这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Un ... 
- HBase Canary
			HBase Canary 用于检测HBase 系统的状态.它对指定表的每一个region 抓取一行,来探测失败或者延迟. hbase org.apache.hadoop.hbase.tool.Can ... 
- iOS自定义多参数类型方法
			前几天做自定义UIAlertView的时候,想仿造系统自带的初始化方法做一个AlertView,里面涉及到不确定多参数的设置和使用问题.这里做一下记录. 我自定义了一个方法: - (instancet ... 
- Sencha touch 2 入门  --------   DataView  显示服务器端JSON文件数据
			今天学习了下DataView如何显示JSON文件数据,废话不多说,直接贴代码: 首先看下文件目录: 然后看下我们要处理的JSON文件,bookInfo.json. { "success&qu ... 
