node单线程

const fs=require(‘fs‘);

console.time(‘timer‘);

fs.stat(‘./1.txt‘,(err,stats)=>{

//console.log(stats);

if(err){

console.log(‘文件不存在‘);

fs.writeFile(‘./1.txt‘,new Date(),(err)=>{

if(err) {

console.error(err);

return false;

};

console.log(‘success done‘);

});

}

fs.unlink(‘./1.txt‘,(err)=>{

if(err) {

console.error(err);

return false;

};

fs.writeFile(‘./1.txt‘,new Date(),(err)=>{

if(err) {

console.error(err);

return false;

};

console.log(‘success‘);

});

});

});

console.timeEnd(‘timer‘);

时间: 2024-10-08 22:53:56

node单线程的相关文章

node 单线程异步非阻塞

链接:http://www.runoob.com/nodejs/nodejs-callback.html 首先什么是单线程异步非阻塞? 单线程的意思整个程序从头到尾但是运用一个线程,程序是从上往下执行的.异步操作就是程序虽然是从上到下执行的,但是某个函数执行时间过长时并不会阻塞在那里等待它执行完,然后在执行下面的代码.非阻塞也就是这个意思. 为什么node是异步非阻塞的呢,得力于回调函数,还有js中的定时器也是经典的异步操作. ###4.1 Node.js异步机制 由于异步的高效性,node.j

单线程异步回调机制的缺陷与node的解决方案

一.node单线程异步的缺陷: 单线程异步的优点自然不必多说,node之所以能够如此快的兴起,其单线程异步回调机制相比于传统同步执行编程语言的优势便是原因之一.然而,开发一个node程序,其缺陷也是不可忽视的: 二.node解决方案: 1.node实现访问和错误日志: morgan是一个http请求处理的中间件 2.node cluster模块支持开启多个工作进程充分调用cpu资源,也能防止bug使node进程奔溃: app.js修改: 新建cluster.js: 命令行执行: 注:superv

【转】Commonjs规范及Node模块实现

前言: Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性.本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是global [注意]实际上,javascript也存在global对象,只是其并不对外访问,而使用window对象指向global对象而已 在javascript中,通过var a = 100:是可以通过wi

理解Node.js的事件轮询

前言 总括 : 原文地址:理解Node.js的事件轮询 Node小应用:Node-sample 智者阅读群书.亦阅历人生 正文 Node.js的两个基本概念 Node.js的第一个基本概念就是I/O操作开销是巨大的: 所以,当前变成技术中最大的浪费来自于等待I/O操作的完毕.有几种方法能够解决性能的影响: 同步方式:按次序一个一个的处理请求.利:简单.弊:不论什么一个请求都能够堵塞其它全部请求. 开启新进程:每一个请求都开启一个新进程.利:简单:弊:大量的链接意味着大量的进程. 开启新线程:每一

Node.js的内存分配和垃圾回收

简单介绍Node.js的内存分配和垃圾回收 内存分配 Node.js是一个由JavaScript V8引擎控制的C++程序V8的内存管理模式一个运行的程序通常是通过在内存中分配一部分空间来表示的.这部分空间被称为驻留集(Resident Set).V8的内存管理模式有点类似于Java虚拟机(JVM),它会将内存进行分段: 代码 Code:实际被执行的代码 栈 Stack:包括所有的携带指针引用堆上对象的值类型(原始类型,例如整型和布尔),以及定义程序控制流的指针. 堆 Heap:用于保存引用类型

Nodejs的模块

在Node中引入模块,需要经历如下3个步骤:(1)路径分析(2)文件定位(3)编译执行 Node中模块分为两类: 一是Node提供的模块——核心模块.这部分在Node源代码的编译过程中,编译进了二进制文件.在Node进程启动时,部分核心模块就直接加载进内存中,所以这部分核心模块引入时,省略掉文件定位和编译执行并且在路径分析中优先判断,加载速度是是最快的. 二是用户编写的模块——文件模块.在运行时动态加载,需要完整的路径分析.文件定位.编译执行过程,速度比核心模块慢. 1.优先从缓存加载 Node

20190312

1. int(5) 和 int(10) 有什么区别 int 类型括号里的数字并不是限制最长长度,而是小于这个长度会在前面以零填充: 2. char(10) 和 varchar(10) 的区别 1)char 的长度是固定的,varchar 的长度是可变的; 2)char(10) 存入数据长度少于10,则会在其数据后面跟空格以保持数据长度为10,所以取数据的时候要 .trim() 去掉多余的空格:而 varchar 存入什么就是什么,取数据也不用二次加工: 3)char() 由于长度固定所以存储与查

重回博客 谈一谈Node中的异步和单线程

重回博客,这个帐号之前注册后就只发了一篇博客.听朋友建议,决定一周两次更新. 第一篇谈论一下最近想的比较多的异步的问题. 传统多线程异步 传统的异步是多线程的,当要同时做两件事的时候,他们是执行在不同的线程里的.这就像是柜台卖东西,来了一个人就得找一个员工陪他,直到这个人走了这个员工才能接待下一个客人.店内的员工就像线程池里的空闲线程,空闲的时候可以去接待客人,可是同时只能接待一个人,要接待其他人就得找另外一个人. 电脑里的线程相当于一个员工团队,哪里需要去哪里.多线程的异步好处在于可以更多的占

如何理解node是单线程异步I/O

I/O: 指的是设备与cpu连接的接口电路的操作 异步: 就是不用等一个操作完成,而是去执行其他代码,等操作完成之后再去执行那个操作的结果, nodeJS使用回调函数来实现的 单线程:在实现异步操作时有很多解决办法,Apache的解决办法是多线程,应该说很多编程语言都使用了多线程,但是在后来的测试和实际应用中, 多线程程序在超过一万人时性能急剧下降,因为创建一个新线程是很耗性能能,即使多线程会把CPU利用到极致但也不能解决过多的人来访问.所以 node的单线程就成为它璀璨的亮点.而且它的回调和它