Go Base

Go又稱(chēng)為Golang劳景,是Google的Robert Griesemer、Rob Pike变姨、Ken Thompson開(kāi)發(fā)的一種靜態(tài)編譯型語(yǔ)言衅金,Go語(yǔ)法與C類(lèi)似汁雷,功能具有內(nèi)存安全祟牲、垃圾回收、結(jié)構(gòu)心態(tài)仑鸥、并發(fā)計(jì)算的編程語(yǔ)言。

Go = C + Python

Go起源于2007年变屁,并在2009年正式對(duì)外發(fā)布眼俊,其目標(biāo)是“兼容Python等動(dòng)態(tài)語(yǔ)言的開(kāi)發(fā)速度和C/C++等編譯型語(yǔ)言的性能和安全性”。

Go又被稱(chēng)為“C類(lèi)似語(yǔ)言”或“21世紀(jì)的C語(yǔ)言”粟关,Go從C繼承了相似的表達(dá)式語(yǔ)法疮胖、控制流程結(jié)構(gòu)、基本數(shù)據(jù)類(lèi)型闷板、調(diào)用參數(shù)傳值澎灸、指針等多種思想,還有C一直所看重的編譯機(jī)器代碼的運(yùn)行效率遮晚,和現(xiàn)有操作系統(tǒng)的無(wú)縫適配性昭。

Go沒(méi)有類(lèi)和繼承的概念,因此和Java或C++看起來(lái)并不相同县遣,但它通過(guò)接口實(shí)現(xiàn)了多態(tài)糜颠。Go具有清晰易懂的輕量級(jí)類(lèi)型系統(tǒng)汹族,在類(lèi)型之間沒(méi)有層級(jí)關(guān)系,因此Go是一門(mén)混合型語(yǔ)言其兴。

Go語(yǔ)言核心開(kāi)發(fā)團(tuán)隊(duì)

編譯型語(yǔ)言

Go和C一樣是編譯型靜態(tài)語(yǔ)言顶瞒,因此在運(yùn)行Go程序前必須將其編譯為二進(jìn)制的可執(zhí)行文件。

Go使用編譯器來(lái)編譯代碼元旬,編譯器將源代碼編譯成二進(jìn)制字節(jié)碼格式榴徐,編譯代碼時(shí)編譯器會(huì)檢查錯(cuò)誤、優(yōu)化性能并輸出不同平臺(tái)上運(yùn)行的二進(jìn)制文件匀归。

編譯型語(yǔ)言

Go提供了go buildgo run命令對(duì)Go程序進(jìn)行編譯

  • go build將Go源代碼編譯成二進(jìn)制可執(zhí)行文件
  • go run將Go源代碼編譯后會(huì)直接運(yùn)行箕速,編譯時(shí)會(huì)生成臨時(shí)文件而非可執(zhí)行文件,適合調(diào)試程序朋譬。

21世紀(jì)的C語(yǔ)言

  • 2005年第一個(gè)雙核處理器誕生
21世紀(jì)的C語(yǔ)言

特點(diǎn)

Go是一種靜態(tài)強(qiáng)類(lèi)型盐茎、編譯型、并發(fā)型徙赢、具有垃圾回收機(jī)制的編程語(yǔ)言字柠。

  • 語(yǔ)法簡(jiǎn)潔:就類(lèi)型和規(guī)則而言Go與C99、C11相似之處頗多狡赐,因此又被稱(chēng)之為“NextC”窑业。
  • 并發(fā)模型

Go從根本上將一切都并行化,運(yùn)行時(shí)使用GoRoutine來(lái)運(yùn)行一切枕屉,包括main.main入口函數(shù)常柄。

GoRoutine使用協(xié)程的方式來(lái)處理并發(fā)單元,運(yùn)行時(shí)更深度的優(yōu)化處理搀擂,使得并發(fā)編程極為簡(jiǎn)單西潘,無(wú)需處理回調(diào),無(wú)需關(guān)注線程切換哨颂。

Go搭配channel實(shí)現(xiàn)CSP并發(fā)模型喷市,將并發(fā)單元之間的數(shù)據(jù)耦合拆解以各司其職,這對(duì)糾結(jié)于內(nèi)存共享威恼、鎖粒度的開(kāi)發(fā)人員是一種解脫品姓。

  • 內(nèi)存分配:Go將一切并發(fā)化帶來(lái)的問(wèn)題是如何實(shí)現(xiàn)高并發(fā)下的內(nèi)存分配和管理,Go選用tcmalloc高性能內(nèi)存分配組件來(lái)解決這個(gè)問(wèn)題箫措。
  • 垃圾回收:由于指針的存在回收內(nèi)存不能做收縮處理腹备,而Go的指針運(yùn)算被阻止。
  • 靜態(tài)鏈接:Go靜態(tài)鏈接只需編譯后的可執(zhí)行文件斤蔓,無(wú)須附加其它即可部署植酥。
  • 標(biāo)準(zhǔn)庫(kù):Go標(biāo)準(zhǔn)庫(kù)中值得稱(chēng)道的是net/http
  • 工具鏈:Go無(wú)論是編譯、格式化附迷、錯(cuò)誤檢查惧互、幫助文檔哎媚、第三方包下載與更新都有與之對(duì)應(yīng)的工具。

并發(fā)編程

早期CPU都是以單核形式順序執(zhí)行機(jī)器指令喊儡,C正是這種順序編程語(yǔ)言的代表拨与。順序編程語(yǔ)言中的順序指的是:所有指令都是以串行的方式執(zhí)行,在相同時(shí)刻有且僅有一個(gè)CPU在順序執(zhí)行程序指令艾猜。

隨著CPU發(fā)展單核提升CPU運(yùn)行效率遇到瓶頸买喧,隨后出現(xiàn)多核CPU,相應(yīng)地編程語(yǔ)言也朝向并行化發(fā)展匆赃。

Go從底層原生支持并發(fā)淤毛,無(wú)須第三方庫(kù)。Go的并發(fā)基于goroutine算柳,goroutine可理解為一種虛擬線程低淡。Go運(yùn)行時(shí)會(huì)參與調(diào)度goroutine,并將goroutine合理地分配給每個(gè)CPU以最大限度地提升CPU性能瞬项。

多個(gè)goroutine中會(huì)使用channel通道進(jìn)行通信蔗蹋,通道是一種內(nèi)置的數(shù)據(jù)結(jié)構(gòu),讓用戶在不同goroutine之間發(fā)送具有指定類(lèi)型的消息囱淋。因此讓編程更傾向于goroutine之間發(fā)送消息猪杭,而非讓多個(gè)goroutine爭(zhēng)奪同一個(gè)數(shù)據(jù)的使用權(quán)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妥衣,一起剝皮案震驚了整個(gè)濱河市皂吮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌税手,老刑警劉巖蜂筹,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異冈止,居然都是意外死亡狂票,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)熙暴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人慌盯,你說(shuō)我怎么就攤上這事周霉。” “怎么了亚皂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵俱箱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我灭必,道長(zhǎng)狞谱,這世上最難降的妖魔是什么乃摹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮跟衅,結(jié)果婚禮上孵睬,老公的妹妹穿的比我還像新娘。我一直安慰自己伶跷,他們只是感情好掰读,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著叭莫,像睡著了一般蹈集。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雇初,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天拢肆,我揣著相機(jī)與錄音,去河邊找鬼靖诗。 笑死善榛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呻畸。 我是一名探鬼主播移盆,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼伤为!你這毒婦竟也來(lái)了咒循?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绞愚,失蹤者是張志新(化名)和其女友劉穎叙甸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體位衩,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡裆蒸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糖驴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僚祷。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贮缕,靈堂內(nèi)的尸體忽然破棺而出辙谜,到底是詐尸還是另有隱情,我是刑警寧澤感昼,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布装哆,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蜕琴。R本人自食惡果不足惜萍桌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凌简。 院中可真熱鬧上炎,春花似錦、人聲如沸号醉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)畔派。三九已至铅碍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間线椰,已是汗流浹背胞谈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留憨愉,地道東北人烦绳。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像配紫,于是被迫代替她去往敵國(guó)和親径密。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容