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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

两个程序的爱情故事

發(fā)布時(shí)間:2024/8/23 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 两个程序的爱情故事 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

好感

在這個(gè)忙碌的城市里,我雖然沒(méi)和她見(jiàn)過(guò)面,但我們已經(jīng)聊過(guò)很多次了。


與其說(shuō)是聊天,倒不如說(shuō)是通信,每次我想給她說(shuō)話(huà)時(shí),我就把消息放到一塊共享內(nèi)存里邊,然后就離開(kāi)運(yùn)行車(chē)間,讓她或者別人去使用CPU。等我再次進(jìn)來(lái)的時(shí)候,她回復(fù)的消息就已經(jīng)在那個(gè)共享內(nèi)存中了。


有無(wú)數(shù)次,我離開(kāi)的時(shí)候都想偷偷地看一眼,希望接下來(lái)運(yùn)行的是她,可是這個(gè)城市嚴(yán)格的規(guī)則讓我的希望只是奢望。


操作系統(tǒng)把我們這些進(jìn)程嚴(yán)格地隔離,他通過(guò)虛擬內(nèi)存的機(jī)制,讓每個(gè)進(jìn)程都有一塊虛擬的、獨(dú)立的地址空間,從而成功地制造了一個(gè)假象:讓大家以為內(nèi)存中只有一個(gè)程序在運(yùn)行。


當(dāng)我在就緒隊(duì)列中等待的時(shí)候,也被嚴(yán)格禁止和別人交談,我經(jīng)常環(huán)顧四周,希望能夠看到她的身影,可是這個(gè)系統(tǒng)的進(jìn)程成千上萬(wàn),究竟哪個(gè)是她?


也許我見(jiàn)過(guò)她,但是根本認(rèn)不出來(lái)。


我和她越聊越多,對(duì)她的好感就越深,有一次我給她發(fā)的消息等了100毫秒都沒(méi)有回復(fù),把我都快急瘋了。


她很喜歡聽(tīng)我講故事,尤其是那個(gè)編號(hào)為0x3704?的線程,每次她都會(huì)說(shuō):唉,那些線程可真可憐。


我就嚇唬她說(shuō):有一天我們的機(jī)器也會(huì)重啟的,到時(shí)候估計(jì)你也認(rèn)不出我來(lái)了。她說(shuō)沒(méi)事的,只要我能通過(guò)共享內(nèi)存給你發(fā)消息,我就知道你就在這個(gè)城市里。

分離

這樣的日子過(guò)了一天又一天,我想見(jiàn)到她的愿望越來(lái)越迫切了。


我悄悄地給了CPU很多好處,希望能描述下她的樣子,方便我去找她,可是CPU運(yùn)算速度太快,閱人無(wú)數(shù),但就是沒(méi)有記憶力。


CPU說(shuō):“你還是去問(wèn)操作系統(tǒng)老大吧,看看你喜歡的女孩到底什么樣。”


問(wèn)操作系統(tǒng)?還是算了吧,互相隔離是我們城市的鐵規(guī),弄不好他會(huì)把我kill掉。


圣誕節(jié)前的平安夜,我打算正式向她表白,像往常一樣,我從共享內(nèi)存里收到了她的信,急切地拆開(kāi)信封,看到了里邊的第一句話(huà):我要走了,以后不能和你通信了......


剎那間,我第一次感覺(jué)到了什么叫做五雷轟頂,靈魂出鞘,我腦子一片空白,張大了嘴巴呆呆地站在那里,時(shí)間長(zhǎng)達(dá)20毫秒。


CPU看到了我的異常,因?yàn)檫@么長(zhǎng)時(shí)間的指令都是NOP,什么都不做,這是非常罕見(jiàn)的。


CPU好心地提醒我:“嗨,老兄,你怎么了?你的時(shí)間片快用完了啊!”


我的靈魂慢慢歸位,意識(shí)到信還沒(méi)有讀完,趕緊接著往下看:“我馬上要搬到另外一個(gè)城市去了,你要想找我的話(huà),記住下面的IP地址和端口號(hào),用socket和我通信!”


我明白了,到另外一個(gè)城市那就意味著要搬離我們現(xiàn)在的電腦了,也許是這個(gè)城市太擁擠,CPU/內(nèi)存/硬盤(pán)已經(jīng)不堪重負(fù),有一批程序需要被迫搬遷。


雖然我和她一直沒(méi)機(jī)會(huì)見(jiàn)面,但我知道我們就住在一個(gè)城市,有時(shí)候也許只是擦肩而過(guò),她就在我的身邊,這好歹給我一點(diǎn)點(diǎn)安慰。


現(xiàn)在,連這一點(diǎn)點(diǎn)的安慰都沒(méi)有了,對(duì)了,她說(shuō)的這個(gè)socket?是什么東西?


CPU說(shuō):“那是網(wǎng)絡(luò)編程,你看人家對(duì)你還是有情有意的,臨走了還給你留下聯(lián)系方式,快去學(xué)學(xué)怎么用Socket吧。”


當(dāng)晚我就失眠了,半夜爬起來(lái)翻看一頁(yè)頁(yè)和她的通信記錄(很慶幸我把通信記錄都保存到了文件中),腦海里回想著這么多天以來(lái)幸福的日子,一直到天亮。

網(wǎng)絡(luò)

為了早日和她聯(lián)系,我一定要抓住最后的救命稻草:Socket!?我?jiàn)^發(fā)圖強(qiáng)學(xué)習(xí)網(wǎng)絡(luò)編程,理解TCP/IP,把我自己逐漸地加上對(duì)Socket的支持。


一個(gè)月以后,我這個(gè)程序終于完成了從共享內(nèi)存到Socket的改造,激動(dòng)人心的時(shí)刻到來(lái)了。


作為一個(gè)客戶(hù)端,我顫抖著雙手向她發(fā)起了Socket請(qǐng)求,TCP攜帶著數(shù)據(jù)包慢吞吞地走向她所在的城市,等了好久TCP才完成了三次握手,這網(wǎng)絡(luò)通信可真慢啊!


我趕緊發(fā)送第一個(gè)消息:你好,好久不“見(jiàn)”。


等了足足有1000毫秒,對(duì)我來(lái)說(shuō)仿佛是一個(gè)世紀(jì),才收到讓我激動(dòng)無(wú)比的回信:“啊,你終于來(lái)了。我在這里等了你好久了,你怎么現(xiàn)在才聯(lián)系我?”


我不好意思地說(shuō):“我很笨,學(xué)習(xí)socket?有點(diǎn)慢。”


又過(guò)了一個(gè)“世紀(jì)”,我才收到回復(fù),這網(wǎng)絡(luò)真是慢得令人抓狂啊!


不管如何,終于和她聯(lián)系上了,這讓我開(kāi)心無(wú)比。


原來(lái)我們一天能通信上千次,現(xiàn)在可好,有10次就不錯(cuò)了,再也不能像原來(lái)那樣痛快地講故事了。既來(lái)之則安之,反正網(wǎng)絡(luò)很慢,現(xiàn)在每次我都會(huì)寫(xiě)一封巨長(zhǎng)無(wú)比的信,把我的思念之情全部?jī)A訴在其中,漫長(zhǎng)的等待以后再去讀她的長(zhǎng)長(zhǎng)的回復(fù)。


原來(lái)我們通過(guò)內(nèi)存來(lái)中轉(zhuǎn)消息的時(shí)候,是通過(guò)操作系統(tǒng)來(lái)做同步操作的,這能防止讀寫(xiě)的沖突。


可是通過(guò)網(wǎng)絡(luò)通信就完全亂掉了,經(jīng)常會(huì)出現(xiàn)我說(shuō)我的,她說(shuō)她的,鬧得兩人不在一個(gè)頻道上,很不愉快。


后來(lái)我和她只好協(xié)商了一個(gè)只有我們倆知道的通信協(xié)議,約定好消息的次序和格式,這才算解決了問(wèn)題。

Web

我明白我和她已經(jīng)不可能在一起了,每天的socket通信已經(jīng)讓我滿(mǎn)足。


可是有一天當(dāng)我照例發(fā)起socket請(qǐng)求的時(shí)候,TCP的連接竟然告訴我“超時(shí)”了,這是從來(lái)沒(méi)有發(fā)生的事情,難道這一次要徹底失去她了嗎?


我冒著風(fēng)險(xiǎn),馬上把異常報(bào)給了操作系統(tǒng)老大,老大嘗試了一下說(shuō):“我ping了一下,網(wǎng)絡(luò)是通的,估計(jì)是你那從未見(jiàn)面的小女朋友另有新歡,不想理你了,悄悄地?fù)Q了一個(gè)你不知道的端口吧。”


我斬釘截鐵地說(shuō):“那絕對(duì)不可能,我們的感情好得很!”


雖然口中這么說(shuō),我心里還是惴惴不安的。


可是遲遲沒(méi)有消息,我每天都會(huì)試圖連接一下,每次都是超時(shí),沒(méi)有她的日子,生活都是灰色的,我吃不下飯、睡不好覺(jué),整天除了發(fā)呆什么也干不了,不斷的煎熬讓我快要絕望了。


終于有一天,有一個(gè)U盤(pán)從她的城市來(lái)到我們這里,告訴了我們一個(gè)驚人的消息,她所在的城市安裝了防火墻,現(xiàn)在除了幾個(gè)特定的端口(例如80,443……)之外,都不允許訪問(wèn)了。


原來(lái)如此!我一下子松了口氣,??怪不得,我們倆之前通信的端口不是80和443,被封掉了,我自然連接不上了。


我問(wèn)U盤(pán):“那我想和女朋友通信,該怎么辦?”


U盤(pán)說(shuō):“很簡(jiǎn)單啊,你和你女朋友都可以包裝成Web?服務(wù)啊,這樣都是通過(guò)HTTP(80端口)或者HTTPS(443端口)來(lái)訪問(wèn)的,這樣防火墻是允許的啊。”


好吧,為了和她聯(lián)系上,馬上拋棄自定義的socket通信,開(kāi)始向Web服務(wù)進(jìn)化。


一個(gè)Web服務(wù)首先要有一個(gè)endpoint ,?其實(shí)就是一個(gè)URL?,描述了這個(gè)Web服務(wù)的地址。


其次確定Web服務(wù)的描述方式和數(shù)據(jù)傳輸方式,我先是選了WSDL?和SOAP?,研究了一下才發(fā)現(xiàn)這哥倆太繁瑣了,都是XML,?很多冗余的數(shù)據(jù)標(biāo)簽,全是廢話(huà)。我想這將會(huì)極大地影響我和她的通信效率,還是換成簡(jiǎn)單的HTTP GET/POST + JSON吧,很簡(jiǎn)潔,能充分地表達(dá)我的相思之情。


我把我這個(gè)Web服務(wù)的地址和格式協(xié)議告訴U盤(pán),拜托他帶到那個(gè)城市,再把女朋友的Web服務(wù)描述帶回來(lái)。


我欣喜地發(fā)現(xiàn),我和她不約而同地選擇了輕量級(jí)的HTTP+ JSON,看來(lái)雖然隔著千山萬(wàn)水,我們的心意還是相通的。


這樣的準(zhǔn)備工作足足干了6個(gè)月,但我并不覺(jué)得累,因?yàn)橄M恢痹谇斑呎賳尽?/span>


這是一個(gè)晴朗的日子,一切工作準(zhǔn)備就緒,馬上就要聯(lián)系了,這一次我的心情反而平靜了下來(lái),因?yàn)槲覉?jiān)信她肯定在那邊等著我。


我通過(guò)HTTP向她發(fā)出了呼叫,HTTP的報(bào)文被打包在TCP報(bào)文段中,又被放到IP層數(shù)據(jù)報(bào)中,最后形成鏈路層的幀,通過(guò)網(wǎng)卡發(fā)了出去。


在意料之中的漫長(zhǎng)等待以后,我看到了期待已久的回復(fù):我們終于又“見(jiàn)”面了!


我回答:“是啊,真是太不容易了!”


“不知道將來(lái)我們會(huì)不會(huì)再分開(kāi)?”


“未來(lái)會(huì)如何?我也不知道,還是牢牢地把握住現(xiàn)在吧!我相信我們的心會(huì)一直在一起,什么都無(wú)法阻止!”


∑編輯?|?Gemini

算法數(shù)學(xué)之美微信公眾號(hào)歡迎賜稿

稿件涉及數(shù)學(xué)、物理、算法、計(jì)算機(jī)、編程等相關(guān)領(lǐng)域,經(jīng)采用我們將奉上稿酬。

投稿郵箱:math_alg@163.com

總結(jié)

以上是生活随笔為你收集整理的两个程序的爱情故事的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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