日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

浅谈nodejs与php设计构思层面上的差异

發(fā)布時(shí)間:2024/3/12 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈nodejs与php设计构思层面上的差异 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

nodejs最近火的一塌糊涂,那為什么它可以成為千百程序員的新寵呢?

難道只是因?yàn)榘裫s搬到了服務(wù)端?如果僅僅是這樣是遷移了一個(gè)運(yùn)行環(huán)境和增加幾個(gè)模塊的話我想完全不可能會(huì)得到喜新厭舊的程序員的青睞

nodejs和php的差異主要是兩個(gè)方面:分工和運(yùn)行機(jī)制

分工:nodejs直接跳過了服務(wù)器這個(gè)階段,把創(chuàng)建服務(wù)器作為node的一個(gè)模塊,監(jiān)聽請(qǐng)求這些應(yīng)該是服務(wù)器做的工作現(xiàn)在變成了node做,這樣就簡(jiǎn)化的開發(fā)環(huán)境,而且更加容易控制監(jiān)聽請(qǐng)求以及響應(yīng).也就是說node沒有一個(gè)web容器,沒有根目錄的概念。

運(yùn)行機(jī)制:

php在處理并發(fā)的時(shí)候是通過多線程處理,這樣會(huì)導(dǎo)致硬件成本的增加,特別是一些頻繁I/0的項(xiàng)目,很多的線程被阻塞,cpu得不到充分的利用。

node:node的核心理念是單線程,通過事件和回調(diào)實(shí)現(xiàn)并發(fā)。既然是單線程,那硬件成本自然比較低。

那單線程怎么實(shí)現(xiàn)并發(fā)呢?我認(rèn)為正是這種實(shí)現(xiàn)的方法讓大家耳目一新,所以才會(huì)讓node如此的火,

并發(fā)實(shí)現(xiàn)原理:比如一百個(gè)請(qǐng)求要做一百件事,當(dāng)?shù)谝粋€(gè)請(qǐng)求執(zhí)行到i/o的時(shí)候立馬掛起,不等待i/o成功,直接執(zhí)行下一個(gè)事件,直到i/o完畢,這是觸發(fā)回調(diào)事件,回調(diào)事件的優(yōu)先級(jí)會(huì)比普通事件的優(yōu)先級(jí)高,就是這樣通過異步來實(shí)現(xiàn)單線程的并發(fā)處理。保證了線程永遠(yuǎn)有事做,不會(huì)等待

缺點(diǎn):這樣是提高了cup的利用率,但是無疑是把所有雞蛋放在一個(gè)籃子里面,如果有個(gè)事件導(dǎo)致線程蹦了,直接的后果就是導(dǎo)致線程上的所有任務(wù)事件都蹦了,還有如果是運(yùn)算的阻塞是沒法并發(fā)的,所以這就局限了它只是適合做大量i/o的應(yīng)用場(chǎng)景,不適合做大量計(jì)算的項(xiàng)目,例如股票這類型的。

node還有一個(gè)很大的特點(diǎn)就是路由功能,需要自己去配置,應(yīng)為沒有服務(wù)器軟件,所以服務(wù)器軟件的所有功能都需要自己去寫,但是常用的功能在開源社區(qū)基本都已經(jīng)有人寫好了,對(duì)于我這樣的喳喳來說簡(jiǎn)直就是福音啊。

以上筆記單純代表個(gè)人觀點(diǎn),有不同意見的歡迎打攪。

總結(jié)

以上是生活随笔為你收集整理的浅谈nodejs与php设计构思层面上的差异的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。