成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP socket初探 --- 關(guān)于IO的一些枯燥理論

sf190404 / 664人閱讀

摘要:原文地址要想更好了解編程,有一個(gè)不可繞過(guò)的環(huán)節(jié)就是在中,一切皆文件實(shí)際上要文件干啥不就是讀寫(xiě)么所以,這句話本質(zhì)就是才是王道用的打開(kāi)文件關(guān)閉文件讀讀寫(xiě)寫(xiě),這叫本地文件在編程中,本質(zhì)就是網(wǎng)絡(luò)所以,在開(kāi)始進(jìn)一步的編程前,我們必須先從概念上認(rèn)識(shí)好

[原文地址:https://blog.ti-node.com/blog...]

要想更好了解socket編程,有一個(gè)不可繞過(guò)的環(huán)節(jié)就是IO.
在Linux中,一切皆文件.實(shí)際上要文件干啥?不就是讀寫(xiě)么?所以,這句話本質(zhì)就是"IO才是王道".用php的fopen打開(kāi)文件關(guān)閉文件讀讀寫(xiě)寫(xiě),這叫本地文件IO.在socket編程中,本質(zhì)就是網(wǎng)絡(luò)IO.
所以,在開(kāi)始進(jìn)一步的socket編程前,我們必須先從概念上認(rèn)識(shí)好IO.
如果到這里你還對(duì)IO沒(méi)啥概念,那么我就通過(guò)幾個(gè)詞來(lái)給你一個(gè)大概的印象:同步,異步,阻塞,非阻塞,甚至是同步阻塞,同步非阻塞,異步阻塞,異步非阻塞.是不是暈了?截至到目前為止,你可以簡(jiǎn)單地認(rèn)為只要搞明白這幾個(gè)名詞的含義以及區(qū)別,就算弄明白IO了,至少了可以繼續(xù)往下看了.
先機(jī)械記憶一波兒:IO分為兩大種,同步和異步.

同步IO:

阻塞IO

非阻塞IO

IO多路復(fù)用(包括select,poll,epoll三種)

信號(hào)驅(qū)動(dòng)IO

異步IO

那么如何理解區(qū)別這幾個(gè)概念呢?尤其是同步和阻塞,異步和非阻塞,看起來(lái)就是一樣的.
我先舉個(gè)例子結(jié)合自己的理解來(lái)說(shuō)明一下:

你去甜在心饅頭店買太極饅頭,阿梅說(shuō):"暫時(shí)沒(méi),正在蒸呢,你自己看著點(diǎn)兒?。ⅲ谑悄憔驼驹谂赃呏坏瑞z頭.此時(shí)的你,是阻塞的,是同步的.阻塞表現(xiàn)在你除了等饅頭,別的什么都不做了.同步表現(xiàn)在等饅頭的過(guò)程中,阿梅不提供通知服務(wù),你不得不自己要等到"饅頭出爐"的消息.

你去甜在心饅頭店買太極饅頭,阿梅說(shuō):"暫時(shí)沒(méi),正在蒸呢,你自己看著點(diǎn)兒!".于是你就站在旁邊發(fā)微信,然后問(wèn)一句:"好了沒(méi)?",然后發(fā)QQ,然后再問(wèn)一句:"好了沒(méi)?".此時(shí)的你,是非阻塞的是同步的.非阻塞表現(xiàn)在你除了等饅頭,自己還干干別的時(shí)不時(shí)會(huì)主動(dòng)問(wèn)問(wèn)饅頭好沒(méi)好.同步表現(xiàn)在等饅頭的過(guò)程中,阿梅不提供通知服務(wù),你不得不自己要等到"饅頭出爐"的消息.

你去甜在心饅頭店買太極饅頭,阿梅說(shuō):"暫時(shí)沒(méi),正在蒸呢,蒸好了我打電話告訴你?。ⅲ阋廊徽驹谂赃呏坏瑞z頭,此時(shí)的你,是阻塞的,是異步的.阻塞表現(xiàn)在你除了等饅頭,別的什么都不做了.異步表現(xiàn)在等饅頭的過(guò)程中,阿梅提供電話通知"饅頭出爐"的消息,你只需要等阿梅的電話.

你去甜在心饅頭店買太極饅頭,阿梅說(shuō):"暫時(shí)沒(méi),正在蒸呢,蒸好了我打電話告訴你?。ⅲ谑悄憔妥吡耍ベI了雙新球鞋,看了看武館,總之,從此不再過(guò)問(wèn)饅頭的事情,一心只等阿梅電話.此時(shí)的你,是非阻塞的,是異步的.非阻塞表現(xiàn)在你除了等饅頭,自己還干干別的時(shí)不時(shí)會(huì)主動(dòng)問(wèn)問(wèn)饅頭好沒(méi)好.異步表現(xiàn)在等饅頭的過(guò)程中,阿梅提供電話通知"饅頭出爐"的消息,你只需要等阿梅的電話.

如果你仔細(xì)品過(guò)上面案例中的每一個(gè)字,你就能慢慢體會(huì)到之所以異步和非阻塞,同步和阻塞容易混淆,僅僅是因?yàn)槎叩谋憩F(xiàn)形式稍微有點(diǎn)兒相似而已.
阻塞和非阻塞關(guān)注的是:在等饅頭的過(guò)程中,你在干啥.
同步和異步關(guān)注的是:等饅頭這件事,你是一直等到"饅頭出爐"的結(jié)果,還是立即跑路等阿梅告訴你的"饅頭出爐".重點(diǎn)的是你是如何得知"饅頭出爐"的.
所以現(xiàn)實(shí)世界中,最傻的人才會(huì)采用異步阻塞的IO方式去寫(xiě)程序.其余三種方式,更多的人都會(huì)選擇同步阻塞或者異步非阻塞.同步非阻塞最大的問(wèn)題在于,你需要不斷在各個(gè)任務(wù)中忙碌著,導(dǎo)致你的大腦混亂,非常累.

[原文地址:https://blog.ti-node.com/blog...]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29361.html

相關(guān)文章

  • PHP socket初探 --- 一些零碎細(xì)節(jié)拾漏補(bǔ)缺

    摘要:原文前面可以說(shuō)是弄了一系列的和多進(jìn)程的一大坨內(nèi)容,知識(shí)淺顯代碼粗暴風(fēng)格簡(jiǎn)陋,總的說(shuō)來(lái),還是差了一些細(xì)節(jié)。今天,就一些漏掉的細(xì)節(jié)補(bǔ)充一下。最后,我補(bǔ)充一句是同步的,而不是異步。 原文:https://t.ti-node.com/thread/... 前面可以說(shuō)是弄了一系列的php socket和多進(jìn)程的一大坨內(nèi)容,知識(shí)淺顯、代碼粗暴、風(fēng)格簡(jiǎn)陋,總的說(shuō)來(lái),還是差了一些細(xì)節(jié)。今天,就一些漏...

    chengjianhua 評(píng)論0 收藏0
  • PHP socket初探 --- select系統(tǒng)調(diào)用

    摘要:原文地址在初探先從一個(gè)簡(jiǎn)單的服務(wù)器開(kāi)始中依次講解了三個(gè)逐漸進(jìn)步的服務(wù)器只能服務(wù)于一個(gè)客戶端的服務(wù)器利用可以服務(wù)于多個(gè)客戶端的額服務(wù)器利用預(yù)派生進(jìn)程服務(wù)于多個(gè)客戶端的服務(wù)器最后一種服務(wù)器的進(jìn)程模型基本上的大概原理其實(shí)跟我們常用的是非常 [原文地址:https://blog.ti-node.com/blog...] 在<PHP socket初探 --- 先從一個(gè)簡(jiǎn)單的socket服務(wù)器開(kāi)始...

    springDevBird 評(píng)論0 收藏0
  • PHP多進(jìn)程初探 --- 再次談daemon進(jìn)程

    摘要:因?yàn)樽舆M(jìn)程一定不會(huì)是組長(zhǎng)進(jìn)程,所以子進(jìn)程可以調(diào)用。主進(jìn)程退出子進(jìn)程繼續(xù)執(zhí)行啦啦啦,啦啦啦,啦啦啦,已經(jīng)變成啦,開(kāi)心一般服務(wù)器軟件都有寫(xiě)配置項(xiàng),比如以模式運(yùn)行還是以模式運(yùn)行。 [原文地址:https://blog.ti-node.com/blog...] 其實(shí)前面是談過(guò)一次daemon進(jìn)程的,但是并涉及過(guò)多原理,但是并不影響使用。今天打算說(shuō)說(shuō)關(guān)于daemon進(jìn)程更多的二三事,本質(zhì)上說(shuō),如...

    fox_soyoung 評(píng)論0 收藏0
  • PHP socket初探 --- 顫顫抖抖開(kāi)篇libevent(一)

    摘要:原文地址正如標(biāo)題所言,顫顫抖抖開(kāi)篇。于是只能是你自己,把單子上的個(gè)快遞逐次和收到的對(duì)比一遍,然后對(duì)比完畢后再把這個(gè)單子給了阿梅,然后阿梅繼續(xù)等。剃光頭前的阿梅,就是,不敢正眼看老板娘一眼。剃光頭后的阿梅,就是,可徒手接魔鬼隊(duì)的死亡之球。 [原文地址:https://blog.ti-node.com/blog...] 正如標(biāo)題所言,顫顫抖抖開(kāi)篇epoll。顫顫抖抖的原因大概也就是以前幾乎...

    levinit 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

sf190404

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<