Redian新闻
>
关于node的讨论进这里吧
avatar
p*2
2
can some big cows offer a
relative deep summary about node.js?
不是big cow,也不deep,随便聊聊自己的感受。几个优点
1. 异步,支持高并发,避免多线程编程的各种苦逼问题
2. V8, 高性能
3. JS, 前端后端用一种语言搞定,非常方便
4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
能来说,node能比Java慢多少)
6. 前端的大趋势是SPA, MVC往browser里移, 后端退化为web service,所以传统的
MVC架构优势就大大减弱了
7. 很多协议本身就是基于JS和JSON的,比如restful, mongodb, elasticserch etc
。用node来做非常自然,不需要转换数据类型
因为前端没有选择的要使用JS,所以后端上同样的语言非常有诱惑力,使得看不出
rails和python的还有什么特别的优势,除了历史久,更成熟一些。
avatar
p*2
3
One thing I particularly want to understand is that since js is an
asynchronous, single threaded, event driven language, how the server side
scales when you only have one process but many asynchronous response events
waiting to be handled in that single thread. Do you experience any issues on
many concurrent users?
多进程可解决。
avatar
s*e
4
多进程可解决??? what do you mean?
today js is asynchonous by nature. My question is about blocking in event
loop when there are many concurrent users. For example, for one server, if
200 concurrent users request the same service, even it takes 100 milli-
sec to handle the callback, then the user can wait for more than 20 secs max.
Cluster might be a solution for me. But one node cannot handle 200
concurrent users still bother me.

events
on

【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。

avatar
p*2
5

max.
你这情况多线程又如何? 100 milli sec的时间花在了哪里?

【在 s******e 的大作中提到】
: 多进程可解决??? what do you mean?
: today js is asynchonous by nature. My question is about blocking in event
: loop when there are many concurrent users. For example, for one server, if
: 200 concurrent users request the same service, even it takes 100 milli-
: sec to handle the callback, then the user can wait for more than 20 secs max.
: Cluster might be a solution for me. But one node cannot handle 200
: concurrent users still bother me.
:
: events
: on

avatar
s*e
6
I still do not know what you meant by multi-threaded. As said, js is single
threaded, asynchronous model. Did u mean web workers? I will be hesitating
to pay the penalty to use web worker for a small job like that. 100 milsec
means nothing, a simple file open can cost much more than that.
In servlet or similar model, each request will be handled by one single
thread, nobody blocks nobody.
avatar
p*2
7

single
算了。你还是先好好看看node去吧。

【在 s******e 的大作中提到】
: I still do not know what you meant by multi-threaded. As said, js is single
: threaded, asynchronous model. Did u mean web workers? I will be hesitating
: to pay the penalty to use web worker for a small job like that. 100 milsec
: means nothing, a simple file open can cost much more than that.
: In servlet or similar model, each request will be handled by one single
: thread, nobody blocks nobody.

avatar
s*e
8
haha... I spent 2 hours going through nodejs beginner guide this morning. I
do not think that damn book answers my doubts.
avatar
c*d
9
我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
(现在还有单核的吗?:))。
首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
做不到这点的。

events
on

【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。

avatar
z*e
10
一般而言
动态类型的语言,比静态类型的语言,要慢
慢很多,js和python还有groovy都是动态类型的语言
而且不仅是慢,开发复杂的东西时候,还容易错
因为ide很难帮忙纠错,鬼知道那个变量到底是什么东西
这两个其实也是python programmer最常见的抱怨
还有一个,非oo的语言,在多线程的表现上
往往很逆天,一个线程如果不是对象
我不知道该理解成什么东西
实际上大多数fp都不被设计用来做大的并发项目
多数都是给scientific nerd玩科学计算用的
比如r,就是华丽的单线程,用来做统计题是很快
但是用来做server,我很难理解该怎么写
nodejs用单线程,多个cpu得server怎么办?
不用?hpc里面随便都是几十个cpu,难道华丽滴扔掉不用?
单线程和异步能解决很多问题,但是一旦有一个任务时间超长
而且需要长期跟客户端保持连接,怎么办?
这个时候异步和单线程就很难办了
所以用来做web可能还不错,但是web毕竟太简单了
最后一个就是,jvm本身水平很高
sun的精华就在那里面,其它语言,包括oo语言
其核心vm或者用小菊花的说法,framework
都很难跟jvm相提并论,这就是轮子的差距
jvm跟其它语言的vm的差距,看制作人就知道了
jvm就是美帝的精华,python的核心就是那个荷兰人
美帝跟荷兰的差距,就是java跟python的差距
原谅我的偏见
冲击的方面看,我觉得coffeescript更简洁
而且从hiphop对于php的优化看
估计coffeescript还不是个头,估计后面还有变化
公孙大神还得继续结婚
avatar
z*e
11
多核和多cpu还是不一样
多核的单cpu server是多数,这个不否认
我不是很清楚nodejs怎么处理多核问题的
但是从你举例的cluster来看
其实还是单线程,遇到多个cpu的server就挂了
如果我们把标准放宽一点
假设所有的event的项目都搞定了
那么还有thread的项目
web和监控什么的,多数都是一个客户触发
然后后面跟着一套流程,这样一个东西
典型的event driven,这个传统上有工作流等东西来做类似的事
但是threads还是很有可能遇到的
比如游戏,开一个cs的局,这个时候搞单线程……
从另外一方面说,jvm上也有大量的异步处理
spring等framework都有annotation来作类似的事
但是好处在于,jvm没有放弃多线程
如果需要,随时可以回到真正的多线程上去
而且将来多cpu的server成为主流,这个如果有一天成为现实
我觉得也不是什么很奇怪的事

【在 c***d 的大作中提到】
: 我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
: 单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
: (现在还有单核的吗?:))。
: 首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
: 其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
: 后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
: scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
: node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
: 以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
: 做不到这点的。

avatar
y*g
12
太高级了 我看看明年能不能学会点儿

【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)

avatar
z*e
13
你就装吧

【在 y*******g 的大作中提到】
: 太高级了 我看看明年能不能学会点儿
avatar
y*g
14
我的确想做node,project老delay 今年怕是没机会了。

【在 z****e 的大作中提到】
: 你就装吧
avatar
z*e
15
我个人不喜欢笼统滴说前端和后端
说前端后端太容易误导了
3 tiers
应该是
客户端,web server和app server
后两个统称服务器端
趋势上看
客户端逐步变复杂,没有错,mobile在逐步赶上pc
web server逐步变成一个web service server,其实这个是进化了
不知道为什么总有人说是退化了,命令多了两个呢
不过这一块用某大牛说法就是不打粮食
开发的确变得越来越简单,因为逻辑被剥离出了这一层
剩下的crud等操作,无非就那点东西么
app server爆炸式增长,cloud, big data在这里聚集
这一块的增长已经呈现一种指数级的增长了
传统的db什么压根满足不了需求
jvm很多时候都不够用,不少开发人员需要去调整虚拟机参数才行
以前jee时代,这种事比较少
这一块就是某大牛说的打粮食的领域
现在有新的热点一波接着一波冲出来

【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)

avatar
p*2
16
zhaoce大牛,我觉得node不应该跟java比,用途很不一样。node冲击的更多时ruby,
python这些。
还有就是多线程为什么一定要是OO的呢?感觉C里面多线程也多了去了。
avatar
A*i
17
多线程和OO有关系么?
pthread被赤裸裸的无视了,鼓吹java吹到这份上我到第一次见到
avatar
z*e
18
非大牛,担当不起,折寿
但是用c写多线程要自己去包装,很烦
java写多线程多容易,直接实现接口就好了
你用akka做也可以
多线程从来都是找合适的工具上
akka什么,tomcat什么也都是类似的多线程管理工具
自己去实现的,多半都有问题
你说得没错,主要是web server上有各种讨论
我觉得coffeescript蛮好
动态类型本身效率偏低,一旦做大,会遇到跟fb搞php一样的问题
不过现在写个web,尤其是小的website,是越来越简单了
唯一简单的部分,其它都在变复杂

【在 p*****2 的大作中提到】
: zhaoce大牛,我觉得node不应该跟java比,用途很不一样。node冲击的更多时ruby,
: python这些。
: 还有就是多线程为什么一定要是OO的呢?感觉C里面多线程也多了去了。

avatar
p*2
19

JS这种语言,即使有了CS,跟Java这种大型语言还是根本没有可比性。很难做大,不过
倒是挺好玩的。编程这东西我一直感觉就是打游戏。不同的游戏路数也是不一样的。这
一年学了一个FP,又学了一个Async,对于思路的开阔很有帮助。对于做项目来说,很
难说哪个语言最好,不同的项目可以选用不同的语言,框架来实现。当然总体来说Java
的地位不用大牛你宣传,也是在那里的。我目前来说需要快速开发,所以Node很适合我
。感觉做异步的话,node确实要比其他语言方便很多。当然这一块我Java也没用过,
Ruby的EM用了一下,问题挺多。做异步的话也就不需要考虑多线程了,当然写code就要
很小心,注意了,不能block。

【在 z****e 的大作中提到】
: 非大牛,担当不起,折寿
: 但是用c写多线程要自己去包装,很烦
: java写多线程多容易,直接实现接口就好了
: 你用akka做也可以
: 多线程从来都是找合适的工具上
: akka什么,tomcat什么也都是类似的多线程管理工具
: 自己去实现的,多半都有问题
: 你说得没错,主要是web server上有各种讨论
: 我觉得coffeescript蛮好
: 动态类型本身效率偏低,一旦做大,会遇到跟fb搞php一样的问题

avatar
b*e
20
It does not necessarily have to do with multi-process. The single process/
thread event loop model is good enough to handle concurrent accesses. It's
a mind model switch:
* an event handling unit maps to a thread;
* the event loop controller maps to the thread context switching scheduler.
Thinking about it this way, one should understand why node.js is in fact "
multi-threading" by design.
It's however true that one event loop can only use one CPU. To utilize full
CPU power of a multi-core server, we need the help of cluster.
Notably, One should not map nginx + node.js to apache + php. PHP handles
each request with a process, which is NOT the case for node.js.

events
on

【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。

avatar
b*e
21
我有个比较实际的问题:怎么调试coffee script? Error stack好像都是javascript
的原始stack。有没有tools映射到coffee script stack上?这是我一直没有下决心用
coffee script的原因。

【在 p*****2 的大作中提到】
: 那个帖子太牛逼了。
avatar
p*2
22

javascript
你不懂JS?我觉得即使用CS还是要懂点JS的。就比如即使用C也总会多多少少接触一下
汇编的。
当然有一些tools,比如CS2.0能做source map,但是我现在还没觉得需要试一下。

【在 b***e 的大作中提到】
: 我有个比较实际的问题:怎么调试coffee script? Error stack好像都是javascript
: 的原始stack。有没有tools映射到coffee script stack上?这是我一直没有下决心用
: coffee script的原因。

avatar
y*u
23
内部人士来说一下:现在做jvm就是人欧洲人的天下,毛子+西欧诸国
顺便有懂jvm内核的请pm我,可帮投简历
avatar
M*l
24
用了几个月的coffee script了,依然是要转换成javascript才能看出问题……二爷给
指点一下迷津吧,是我写的太少了吗还是理解不够深刻……有没有好点的教程书之类的
?谢谢!

【在 p*****2 的大作中提到】
:
: javascript
: 你不懂JS?我觉得即使用CS还是要懂点JS的。就比如即使用C也总会多多少少接触一下
: 汇编的。
: 当然有一些tools,比如CS2.0能做source map,但是我现在还没觉得需要试一下。

avatar
M*l
25
问个很弱很弱的问题呀,刚用了一周的nginx和node,一直搞不清楚里面的protocal是
怎么回事哎,比如好像node那部分只支持http(没看见require https),但是nginx能
把https转化成http再call server?一直在console.log(req.protocol),总是显示
http哎

【在 c***d 的大作中提到】
: 我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
: 单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
: (现在还有单核的吗?:))。
: 首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
: 其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
: 后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
: scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
: node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
: 以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
: 做不到这点的。

avatar
z*e
26
不止jvm,各种framework也都是发达国家人的发明
阿三虽然嘴巴上挂着java,但是稍微深入一点的东西
阿三基本上没啥贡献,阿三多数都只是使用者

【在 y******u 的大作中提到】
: 内部人士来说一下:现在做jvm就是人欧洲人的天下,毛子+西欧诸国
: 顺便有懂jvm内核的请pm我,可帮投简历

avatar
l*t
27
我想问一下,你们哪个是公司真的用node(局部或甚至是POC的除外)。
自己玩玩的不算。这样便于我们外行的了解情况。
俺们公司一个nextgen的东东也用node, small scale,俺是看不出来啥东东。

【在 z****e 的大作中提到】
: 不止jvm,各种framework也都是发达国家人的发明
: 阿三虽然嘴巴上挂着java,但是稍微深入一点的东西
: 阿三基本上没啥贡献,阿三多数都只是使用者

avatar
H*r
28
阿三就是寄生虫

【在 z****e 的大作中提到】
: 不止jvm,各种framework也都是发达国家人的发明
: 阿三虽然嘴巴上挂着java,但是稍微深入一点的东西
: 阿三基本上没啥贡献,阿三多数都只是使用者

avatar
H*r
29
阿三就是寄生虫

【在 z****e 的大作中提到】
: 不止jvm,各种framework也都是发达国家人的发明
: 阿三虽然嘴巴上挂着java,但是稍微深入一点的东西
: 阿三基本上没啥贡献,阿三多数都只是使用者

avatar
p*2
30

您老就不能google一下?

【在 l*****t 的大作中提到】
: 我想问一下,你们哪个是公司真的用node(局部或甚至是POC的除外)。
: 自己玩玩的不算。这样便于我们外行的了解情况。
: 俺们公司一个nextgen的东东也用node, small scale,俺是看不出来啥东东。

avatar
p*2
31

其实debug的很多时候看看log就能猜的差不多了。不一定非要看code。不一定每次吧?

【在 M******l 的大作中提到】
: 用了几个月的coffee script了,依然是要转换成javascript才能看出问题……二爷给
: 指点一下迷津吧,是我写的太少了吗还是理解不够深刻……有没有好点的教程书之类的
: ?谢谢!

avatar
p*2
32

这不是挺好?

【在 M******l 的大作中提到】
: 问个很弱很弱的问题呀,刚用了一周的nginx和node,一直搞不清楚里面的protocal是
: 怎么回事哎,比如好像node那部分只支持http(没看见require https),但是nginx能
: 把https转化成http再call server?一直在console.log(req.protocol),总是显示
: http哎

avatar
l*t
33
是不是你会错我意啦?我那句不是反问,是疑问句。
就想了解哪个ID公司主要在用node,给点insider的实战评论。其它的帖子我就不看了
,到时候工作需要了解就google search 了。

【在 p*****2 的大作中提到】
:
: 这不是挺好?

avatar
p*2
34

yangcheng他们在用,我们也在用
原帖不是也有人用在10几万太机器上吗?

【在 l*****t 的大作中提到】
: 是不是你会错我意啦?我那句不是反问,是疑问句。
: 就想了解哪个ID公司主要在用node,给点insider的实战评论。其它的帖子我就不看了
: ,到时候工作需要了解就google search 了。

avatar
l*t
35
谢。我就关注你们几个了。
照旧,老问题:有什么competitors? 有啥不足?

【在 p*****2 的大作中提到】
:
: yangcheng他们在用,我们也在用
: 原帖不是也有人用在10几万太机器上吗?

avatar
p*2
36

理论上还是实践上?

【在 l*****t 的大作中提到】
: 谢。我就关注你们几个了。
: 照旧,老问题:有什么competitors? 有啥不足?

avatar
l*t
37
想问实践的,回头我也好向头头吹吹他们不知道的。给ICC作风给害了。

【在 p*****2 的大作中提到】
:
: 理论上还是实践上?

avatar
p*2
38

那基本上就是scala了。

【在 l*****t 的大作中提到】
: 想问实践的,回头我也好向头头吹吹他们不知道的。给ICC作风给害了。
avatar
b*e
39
你们用不用async之类的lib来减少nested callback function到层数, 还是直接生写
callback passing?

【在 p*****2 的大作中提到】
:
: 那基本上就是scala了。

avatar
z*e
40
这个问题其实问做web的比较好
web server各种脚本语言用得比较多
我能想到的优点是开发效率高

【在 l*****t 的大作中提到】
: 我想问一下,你们哪个是公司真的用node(局部或甚至是POC的除外)。
: 自己玩玩的不算。这样便于我们外行的了解情况。
: 俺们公司一个nextgen的东东也用node, small scale,俺是看不出来啥东东。

avatar
M*l
41
我其实很想知道用户到底是http还是https过来的,但是测试的时候就算用https输出的
log也是http哎(req.protocol),不知道是不是nginx配置的不对。
update:好像弄明白了,就是我的nginx config不对,把443端口的都proxy到http://localhost了,所以就一直是http

【在 p*****2 的大作中提到】
:
: 那基本上就是scala了。

avatar
p*2
42

减少层数是因为JS不支持伪递归吗?

【在 b***e 的大作中提到】
: 你们用不用async之类的lib来减少nested callback function到层数, 还是直接生写
: callback passing?

avatar
p*2
43



【在 M******l 的大作中提到】
: 我其实很想知道用户到底是http还是https过来的,但是测试的时候就算用https输出的
: log也是http哎(req.protocol),不知道是不是nginx配置的不对。
: update:好像弄明白了,就是我的nginx config不对,把443端口的都proxy到http://localhost了,所以就一直是http

avatar
j*x
44
node就凭他纯正的async架构就值得起今天的地位
当然,除了这个也就没别的了;没必要大惊小怪,他能到的了ror python之类脚本语言
的程度完全实至名归
avatar
p*2
45

大牛明鉴。不过JS前后端通吃也是一大优势

【在 j********x 的大作中提到】
: node就凭他纯正的async架构就值得起今天的地位
: 当然,除了这个也就没别的了;没必要大惊小怪,他能到的了ror python之类脚本语言
: 的程度完全实至名归

avatar
c*3
46
Nood的异步是通过它的EventLoop来实现的。EventLoop只是把请求丢到线程池里去执行
。这和Java里的线程池有什么不同的吗?

【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)

avatar
g*g
47
Node是单线程的,所谓的线程池是在底层C里面,用来执行操作系统的一些blocking
call,这样可以避免阻塞event loop。大部分底层调用是异步IO。
Java同样支持异步IO,但上层的很多API都是blocking或者使用了threadlocal的。

【在 c******3 的大作中提到】
: Nood的异步是通过它的EventLoop来实现的。EventLoop只是把请求丢到线程池里去执行
: 。这和Java里的线程池有什么不同的吗?

avatar
p*2
48

大牛说到点子上了。很赞。原生不原生还是很重要的。比如Ruby的EM也支持异步,但是
Ruby的绝大部分库也不能用了,所以用起来很别扭,不如干脆用原生的node。

【在 g*****g 的大作中提到】
: Node是单线程的,所谓的线程池是在底层C里面,用来执行操作系统的一些blocking
: call,这样可以避免阻塞event loop。大部分底层调用是异步IO。
: Java同样支持异步IO,但上层的很多API都是blocking或者使用了threadlocal的。

avatar
h*p
49
mark
avatar
f*b
50
强贴帮顶!
avatar
c*3
51
既然Node(Javascript)能这么干,其他语言也可以吧。比如说Java,是不是也可以搞个
分支是单线程加Non-Blocking(线程池是在底层C里面)的呢?

【在 g*****g 的大作中提到】
: Node是单线程的,所谓的线程池是在底层C里面,用来执行操作系统的一些blocking
: call,这样可以避免阻塞event loop。大部分底层调用是异步IO。
: Java同样支持异步IO,但上层的很多API都是blocking或者使用了threadlocal的。

avatar
p*2
52

当然。

【在 c******3 的大作中提到】
: 既然Node(Javascript)能这么干,其他语言也可以吧。比如说Java,是不是也可以搞个
: 分支是单线程加Non-Blocking(线程池是在底层C里面)的呢?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。