关于node的并发初次尝试
怎么用node写一个并发?
参照
https://github.com/alsotang/node-lessons/tree/master/lesson4
实现的方式
- 回调的方式
单线程的 node为什么能够实现并发?
线程执行的时间大部分都在io操作,
因此在执行io操作时,切换线程从而实现并发。
也可以使用threads_a_gogo模块来实现多线程。
cnode介绍地址: https://cnodejs.org/topic/518b679763e9f8a5424406e9
github地址: https://github.com/xk/node-threads-a-gogo
node的并发与java相比
node : 在一个线程中发送多个请求。
java : 为每一个请求分配一个进程。
so 相比node java会消耗更多的资源。
因为node是单线程的,所以如果是 计算密集型的,java 要更有优势。
什么是io操作
io 操作在不同的层次上有不同的理解。比如读写外部设备的都是io, 比如打印机,显示器,数据库等。
有一种简单的分类:数据型IO和非数据型IO。
数据型IO : 操作中包含读取扇区数据。