NodeJS学习第一季-阻塞与非阻塞

创建一个input.txt 内容为 Hello World

1、阻塞代码例子

var fs = require("fs");
var data = fs.readFileSync(‘input.txt‘);

console.log(data.toString());
console.log("Program Ended");

运行后打印结果

Hello World!
Program Ended

2、非阻塞代码例子

//非阻塞
var fs = require("fs");
fs.readFile(‘input.txt‘, function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("Program Ended");

运行后打印结果

Program Ended
Hello World!
时间: 2024-12-29 11:04:06

NodeJS学习第一季-阻塞与非阻塞的相关文章

NodeJS学习第一季-路由规则

1.req.query 处理GET请求 ,获取GET参数 //GET /search?q=tobi+ferret req.query.q //=>"tobi ferret" //GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse req.query.order //=>"desc" req.query.shoe.color //=>"blue" 2

NodeJS学习第一季-Markdown模块

标题 标题能显示出文章的结构.行首插入1-6个 # ,每增加一个 # 表示更深入层次的内容,对应到标题的深度由 1-6 阶. H1 :# Header 1 H2 :## Header 2 H3 :### Header 3 H4 :#### Header 4 H5 :##### Header 5 H6 :###### Header 6 文本样式 链接 :[文字内容](URL连接地址) 加粗 :**Bold** 斜体字 :*Italics* 删除线 :~~text~~ 高亮 :==text== 段落

NodeJS学习第一季-HelloWorld

在node-demo 的目录中创建一个index.js //导入需要的包 var http = require("http"); //创建HTTP服务 http.createServer(function (request, response) { // Send the HTTP header  // HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': '

NodeJS学习第一季-字符串转换

1.stringify函数的基本用法 stringify函数的作用就是序列化对象,也就是说将对象类型转换成一个字符串类型(默认的分割符("&")和分配符("=")) var querystring= require('querystring'); var result = querystring.stringify({foo:'bar',cool:['xux', 'yys']}); console.log(result); 运行结果: foo=bar&

NodeJS学习第一季-Process

1.当我们想要查看应用程序当前目录时,可以使用cwd函数 process.cwd(); 2.将内容打印到输出设备上 process.stdout.write('hello world'); 3.stderr是标准错误流 process.stderr.write('hello world'); 4.设置编码 process.stdin.setEncoding('utf8');

Hasen的linux设备驱动开发学习之旅--阻塞与非阻塞I/O

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:阻塞与非阻塞I/O * Date:2014-11-05 */ 阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作.被 挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足.而非阻塞操作的进程在不能 进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直到条件满足以进行操作为止.

Node.js学习笔记【1】入门(服务器JS、函数式编程、阻塞与非阻塞、回调、事件、内部和外部模块)

笔记来自<Node入门>@2011 Manuel Kiessling JavaScript与Node.js Node.js事实上既是一个运行时环境,同时又是一个库. 使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器. 一个基础的HTTP服务器 server.js:一个可以工作的HTTP服务器 var http = require("http"); http.createServer(function(request, response) { r

java nio学习三:NIO 的非阻塞式网络通信

一.阻塞和非阻塞 传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务.因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降.Java NIO 是非阻塞模式的.当线程从某通道进行读写数据时,若没有数据可用时,该线程可以进行其他任务.线程通常将非阻塞 IO 的空闲时间用于在其他通道上

4月27日 python学习总结 GIL、进程池、线程池、同步、异步、阻塞、非阻塞

一.GIL:全局解释器锁 1 .GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码 2.GIL的优缺点: 优点:  保证Cpython解释器内存管理的线程安全 缺点:同一进程内所有的线程同一时刻只能有一个执行,也就说Cpython解释器的多线程无法实现并行 二.GIL与多线程 有了GIL的存在,同一时刻同一进程中只有一个线程被执行 听到这里,有的同学立马质问:进程可以利用多核,但是开销大,而python的多线程开销