備注:本文中所有的示例代碼均使用golang實(shí)現(xiàn) 在軟件編程中,方法是被使用得最廣泛的結(jié)構(gòu);也是出現(xiàn)問(wèn)題最多的結(jié)構(gòu)。方法接收一些參數(shù)(0個(gè)或多個(gè)),返回一些值(0個(gè)或多個(gè))。...
備注:本文中所有的示例代碼均使用golang實(shí)現(xiàn) 在軟件編程中,方法是被使用得最廣泛的結(jié)構(gòu);也是出現(xiàn)問(wèn)題最多的結(jié)構(gòu)。方法接收一些參數(shù)(0個(gè)或多個(gè)),返回一些值(0個(gè)或多個(gè))。...
之前寫(xiě)了一片文章《Go語(yǔ)言如何修復(fù)十億美金的錯(cuò)誤(Null)》[http://www.itdecent.cn/p/5381db35c901]。在該文中,我談到了在Go中有三...
Null 引用一直是個(gè)壞主意,從來(lái)沒(méi)發(fā)揮過(guò)什么正面作用。2020 年是 ALGOL 60 的 60 周年誕辰。ALGOL 60 讓結(jié)構(gòu)化編程真正落地,并為 Pascal、C ...
在所有的編程語(yǔ)言中,變量都是一個(gè)必備的概念;否則,計(jì)算機(jī)也就失去了意義。但是對(duì)于變量的值是否可以修改,卻存在著不同的設(shè)計(jì)理念。我見(jiàn)過(guò)的有如下三種類型:一、變量隨時(shí)可變變量,顧...
Go語(yǔ)言的哲學(xué)思想之一為:Do not communicate by sharing memory; instead, share memory by communicati...
之前寫(xiě)過(guò)一篇文章,介紹我使用kafka一段時(shí)間后的總結(jié),Kafka應(yīng)用總結(jié)[http://www.itdecent.cn/p/116dcf542e0d]。里面有提到過(guò)回收服...
G(Go代碼片段)一個(gè)G就代表一個(gè)goroutine,也與go函數(shù)相對(duì)應(yīng)。作為編程人員,我們只是使用go語(yǔ)句向Go的運(yùn)行時(shí)系統(tǒng)提交了一個(gè)并發(fā)任務(wù),而Go的運(yùn)行時(shí)系統(tǒng)則會(huì)按照我...
P(執(zhí)行一個(gè)Go代碼片段所必需的資源)P是G能夠在M中運(yùn)行的關(guān)鍵。Go的運(yùn)行時(shí)系統(tǒng)會(huì)適時(shí)地讓P與不同的M建立或斷開(kāi)關(guān)聯(lián),以使P中的那些可運(yùn)行的G能夠及時(shí)獲得運(yùn)行時(shí)機(jī),這與操作...
M(內(nèi)核線程)一個(gè)M代表了一個(gè)內(nèi)核線程。在大多數(shù)情況下,創(chuàng)建一個(gè)新M的原因是沒(méi)有足夠的M來(lái)關(guān)聯(lián)P并運(yùn)行其中可運(yùn)行的G。不過(guò),在運(yùn)行時(shí)系統(tǒng)執(zhí)行系統(tǒng)監(jiān)控或垃圾回收等任務(wù)的時(shí)候,也...
在介紹Go獨(dú)特的線程模型之前,我們先來(lái)回顧下常見(jiàn)的三種線程模型。線程的并發(fā)執(zhí)行是由操作系統(tǒng)來(lái)進(jìn)行調(diào)度的,操作系統(tǒng)在內(nèi)核提供對(duì)線程的支持。而我們?cè)谑褂酶呒?jí)語(yǔ)言編寫(xiě)程序時(shí)候創(chuàng)建的...
在今年的兩個(gè)項(xiàng)目中,為了處理大量的游戲日志,于是引入了kafka。經(jīng)過(guò)一段時(shí)間的運(yùn)行,現(xiàn)將整個(gè)應(yīng)用的過(guò)程做一個(gè)記錄和歸檔。 關(guān)于kafka Apache Kafka is a...
微博的興起,帶來(lái)了一個(gè)新的詞語(yǔ):短鏈。何謂短鏈?如果我們?cè)谖⒉├锇l(fā)布一條帶網(wǎng)址的信息,微博會(huì)把里面的網(wǎng)址轉(zhuǎn)化成一個(gè)更短的網(wǎng)址。我們只要訪問(wèn)這個(gè)短網(wǎng)址,就相當(dāng)于訪問(wèn)原始的網(wǎng)址。...
@凌空一月 陳老師您客氣了!對(duì)那個(gè)階段的我來(lái)說(shuō),您已經(jīng)給了我很多指導(dǎo)和幫助了;我們只是受限于社會(huì)整體的大環(huán)境。
教師節(jié)系列-高中教師篇現(xiàn)在是一個(gè)終身學(xué)習(xí)的時(shí)代。我忘記是誰(shuí)告訴我這句話的,但是這么多年我一直對(duì)此堅(jiān)信不疑;也因?yàn)樽约涸贗T行業(yè)工作,面對(duì)著日新月異的技術(shù),必須得保持不斷地學(xué)習(xí),才能避免自己在職業(yè)中...
現(xiàn)在是一個(gè)終身學(xué)習(xí)的時(shí)代。我忘記是誰(shuí)告訴我這句話的,但是這么多年我一直對(duì)此堅(jiān)信不疑;也因?yàn)樽约涸贗T行業(yè)工作,面對(duì)著日新月異的技術(shù),必須得保持不斷地學(xué)習(xí),才能避免自己在職業(yè)中...
設(shè)想一下以下的場(chǎng)景:1、在游戲中聊天,我們想要避免玩家不斷地用相同的內(nèi)容或只做微小調(diào)整的內(nèi)容進(jìn)行刷屏。我們需要判斷玩家每次發(fā)的消息與過(guò)去幾次的相似程度。2、在搜索引擎中,當(dāng)用...
前幾天實(shí)現(xiàn)了一個(gè)新版本的Go的超時(shí)鎖;但是最近遇到一個(gè)問(wèn)題,當(dāng)一個(gè)對(duì)象的讀取非常頻繁時(shí),往里面寫(xiě)入數(shù)據(jù)時(shí),有可能在超時(shí)時(shí)間內(nèi)都無(wú)法獲得寫(xiě)鎖。 為什么會(huì)這樣呢?那是因?yàn)橄胍@取...
Go中提供了一種初始化數(shù)據(jù)和邏輯的方式:func init() {}。當(dāng)我們要初始化配置文件,或者是要啟動(dòng)一個(gè)goroutine,都可以在對(duì)應(yīng)模塊的init方法中進(jìn)行。而in...