[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • 深度探索Go語言——對像模型與runtime的原理、特性及應用
    該商品所屬分類:計算機/網絡 -> 操作繫統/繫統開發
    【市場價】
    1104-1600
    【優惠價】
    690-1000
    【作者】 封幼林 
    【所屬類別】 圖書  計算機/網絡  操作繫統/繫統開發  其他 
    【出版社】清華大學出版社 
    【ISBN】9787302600855
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302600855
    叢書名:計算機技術開發與應用叢書

    作者:封幼林
    出版社:清華大學出版社
    出版時間:2022年08月 


        
        
    "

    產品特色

    編輯推薦

    本書繫統論述Go語言特性,從語言實現的角度深度探索Go語言特性,包含大量的探索示例和源碼分析,在學會應用的同時還能了解實現原理。閱讀本書不需要精通彙編語言、操作繫統,但是需要對進程、線程這類基本概念有所了解。

     
    內容簡介

    本書主要講解了Go語言一些關鍵特性的實現原理,Nicklaus Wirth大師曾經說過:算法 數據結構=程序,語言特性的實現也不外乎就是數據結構 代碼邏輯。 全書共分為4個部分:部分是基礎特性(第1章~第3章),第二部分是對像模型(第4章~第5章),第三部分是調度繫統(第6章~第7章),第四部分是內存管理(第8章~第9章)。書中主要內容包括:指針、函數棧幀、調用約定、變量逃逸、Function Value、閉包、defer、panic、方法、Method Value、組合式繼承、接口、類型斷言、反射、goroutine、搶占式調度、同步、堆和棧的管理,以及GC等。 書中包含大量的探索示例和源碼分析,在學會應用的同時還能了解實現原理。書中絕大部分代碼都是用Go語言實現,還有少部分使用彙編語言,都可以使用Go官方SDK直接編譯。探索過程循序漸進條理清晰,用到的工具也都是SDK自帶,方便讀者親自上手實踐。 本書適合Go語言的初學者,在學習語言特性的同時了解其實現原理。更適合有一定的Go語言應用基礎,想要深入研究底層原理的技術人員。同樣適合有一些其他編程語言基礎,想要轉學Go語言的開發者。

    作者簡介

    封幼林,資深軟件工程師,十多年IT從業經驗,曾涉足Win32桌面程序開發、Android移動端開發,以及互聯網服務器端開發等多個領域。喜歡研究底層技術,用自己的方法探究背後的實現原理。熱愛技術交流與分享,創建了微信公眾號“幼麟實驗室”,致力做一些形像、通透的計算機教程,讓開發者“知其然亦知其所以然”。

    目錄
    第1章彙編基礎
    1.1x86通用寄存器
    1.1.132位架構
    1.1.264位架構
    1.2常用彙編指令
    1.2.1整數加減指令
    1.2.2數據傳輸指令
    1.2.3入棧和出棧指令
    1.2.4分支跳轉指令
    1.2.5過程調用指令
    1.3內存分頁機制
    1.3.1線性地址
    1.3.280386兩級頁表
    1.3.3PAE三級頁表

    第1章彙編基礎


    1.1x86通用寄存器


    1.1.132位架構


    1.1.264位架構


    1.2常用彙編指令


    1.2.1整數加減指令


    1.2.2數據傳輸指令


    1.2.3入棧和出棧指令


    1.2.4分支跳轉指令


    1.2.5過程調用指令


    1.3內存分頁機制


    1.3.1線性地址


    1.3.280386兩級頁表


    1.3.3PAE三級頁表


    1.3.4x64四級頁表


    1.3.5虛擬內存


    1.4彙編代碼風格


    1.5本章小結


    第2章指針(7min)


    2.1指針構成


    2.1.1地址


    2.素類型


    2.2相關操作


    2.2.1取地址


    2.2.2解引用


    2.2.3強制類型轉換


    2.2.4指針運算


    2.3unsafe包


    2.3.1標準庫與keyword


    2.3.2關於uintptr


    2.3.3內存對齊


    2.4本章小結


    第3章函數(44min)


    3.1棧幀


    3.1.1棧幀布局


    3.1.2尋址方式


    3.1.3又見內存對齊


    3.1.4調用約定


    3.1.5Go 1.17的變化


    3.2逃逸分析


    3.2.1什麼是逃逸分析


    3.2.2不逃逸分析


    3.2.3不逃逸判斷


    3.3Function Value


    3.3.1函數指針


    3.3.2Function Value分析


    3.3.3閉包


    3.4defer


    3.4.1初的鏈表


    3.4.2棧上分配


    3.4.3高效的open coded defer


    3.5panic


    3.5.1gopanic()函數


    3.5.2gorecover()函數


    3.5.3嵌套的panic


    3.5.4支持open coded defer


    3.6本章小結


    第4章方法(6min)


    4.1接收者類型


    4.1.1值類型


    4.1.2指針類型


    4.1.3包裝方法


    4.2Method Value


    4.2.1基於類型


    4.2.2基於對像


    4.3組合式繼承


    4.3.1嵌入值


    4.3.2嵌入指針


    4.3.3多重繼承


    4.4本章小結


    第5章接口(27min)


    5.1空接口


    5.1.1一個更好的void*


    5.1.數據


    5.1.3逃逸與裝箱


    5.2非空接口


    5.2.1動態派發


    5.2.2具體實現


    5.2.3接收者類型


    5.2.4組合式繼承


    5.3類型斷言


    5.3.1E To 具體類型


    5.3.2E To I


    5.3.3I To 具體類型


    5.3.4I To I


    5.4反射


    5.4.1類型繫統


    5.4.數據詳細講解


    5.4.3對數據的操作


    5.4.4對鏈接器裁剪的影響


    5.5本章小結


    第6章goroutine(48min)


    6.1進程、線程與協程


    6.1.1進程


    6.1.2線程


    6.1.3協程


    6.2IO多路復用


    6.2.13種網絡IO模型


    6.2.2示例對比


    6.3巧妙結合


    6.4GMP模型


    6.4.1基本概念


    6.4.2從GM到GMP


    6.5GMP主要數據結構


    6.5.1runtime.g


    6.5.2runtime.m


    6.5.3runtime.p


    6.5.4schedt


    6.6調度器初始化


    6.6.1調度器初始化過程


    6.6.2runtime.schedinit()函數


    6.7G的創建與退出


    6.7.1相關彙編函數


    6.7.2runtime.newproc()函數


    6.8調度循環


    6.8.1runtime.schedule()函數


    6.8.2runtime.findrunnable()函數


    6.9搶占式調度


    6.9.1Go 1.13的搶占式調度


    6.9.2Go 1.14的搶占式調度


    6.10timer


    6.10.1一個示例


    6.10.2數據結構


    6.10.3操作函數


    6.11netpoller


    6.11.1跨平臺的netpoller


    6.11.2TCP連接的Read()方法


    6.12監控線程


    6.12.1按需執行timer和netpoll


    6.12.2搶占G和P


    6.12.3強制執行GC


    6.13本章小結


    第7章同步(32min)


    7.1Happens Before


    7.1.1並發


    7.1.2並行


    7.2內存亂序


    7.2.1編譯期亂序


    7.2.2執行期亂序


    7.2.3內存排序指令


    7.3常見的鎖


    7.3.1原子指令


    7.3.2自旋鎖


    7.3.3調度器對像


    7.3.4優化的鎖


    7.4Go語言的同步


    7.4.1runtime.mutex


    7.4.2semaphore


    7.4.3sync.Mutex


    7.4.4channel


    7.5本章小結


    第8章堆(17min)


    8.1內存分配


    8.1.1sizeclasses


    8.1.2heapArena


    8.1.3mspan


    8.1.4mcentral


    8.1.5mcache


    8.1.6mallocgc


    8.2垃圾回收


    8.2.1GC root


    8.2.2三色抽像


    8.2.3寫屏障


    8.2.4觸發方式


    8.2.5GC Worker


    8.2.6gctrace


    8.3本章小結


    第9章棧(8min)


    9.1棧分配


    9.1.1棧分配初始化


    9.1.2棧分配邏輯


    9.2棧增長


    9.2.1棧增長檢測代碼


    9.2.2棧增長函數


    9.3棧收縮


    9.4棧釋放


    9.4.1小於或等於16KB的棧空間


    9.4.2大於或等於32KB的棧空間


    9.4.3棧釋放時機


    9.5本章小結


     

    前言
    近幾年來,Go語言作為一門服務器端開發語言越來越受歡迎,簡潔易學的語法加上天生的高並發支持,還有日益完善的社區,讓很多互聯網公司開始轉向Go語言。隨著Go語言生態日趨成熟,各種組件框架如雨後春筍般湧現,市面上相關的書籍也多了起來,但是其中大部分是以應用為主,對於語言特性本身探索一般不太深入。筆者希望能夠有一本講解語言特性及實現原理的書,這也是寫作本書的動機。

    近幾年來,Go語言作為一門服務器端開發語言越來越受歡迎,簡潔易學的語法加上天生的高並發支持,還有日益完善的社區,讓很多互聯網公司開始轉向Go語言。隨著Go語言生態日趨成熟,各種組件框架如雨後春筍般湧現,市面上相關的書籍也多了起來,但是其中大部分是以應用為主,對於語言特性本身探索一般不太深入。筆者希望能夠有一本講解語言特性及實現原理的書,這也是寫作本書的動機。
    筆者當年剛參加工作的時候,使用的門開發語言是C 。雖然之前在學校用過C語言和彙編語言,但在接觸到C 的一些面向對像特性時還是困惑了很久。直到有一天發現了《深度探索C 對像模型》,作者Stanley Lippman當年在貝爾實驗室工作,是世界上第1個C 編譯器——cfront的實現者,他從一個語言實現者的高度,對一些關鍵特性的實現原理及其背後的思考進行了詳細闡述,使筆者受益匪淺。後來因為工作的原因,筆者開始使用Go語言,因為有了C/C 相關的基礎,所以學習起來更加高效。尤其是當年學習C 對像模型,讓筆者認識到語言特性也是通過數據結構和代碼實現的,所以就按照自己的方式一邊學習一邊探索。次萌生要寫點東西的念頭是在給從PHP轉Go語言的妻子講完接口動態派發的實現原理後,用她的話來講就是有種豁然開朗的感覺,並鼓勵筆者把這些東西整理一下。後來我們就在微信公眾號上以幼麟實驗室的名義發布了一繫列視頻和文章,主要分析語言特性的底層實現。在一年多的時間裡,幼麟實驗室受到了廣大網友的好評與支持,清華大學出版社的趙佳霓編輯也是在此期間聯繫了筆者,希望筆者能夠把自己的探索研究整理成書。因為寫作本書的關繫,讓筆者能夠更繫統地思考,收獲頗多。希望本書能夠幫助各位讀者,解決大家學習Go語言中遇到的一些困惑。
    本書主要內容
    第1章介紹x86彙編的一些基礎知識,包括通用寄存器、幾條常用的指令,以及內存分頁的實現原理等。
    第2章介紹指針的實現原理,包括指針構成、相關操作,以及Go語言的unsafe包等。
    第3章圍繞函數進行一繫列探索,包括棧幀布局、調用約定、變量逃逸、Function Value、閉包、defer和panic等。
    第4章介紹方法的實現原理,包括接收者類型、Method Value和組合式繼承等。
    第5章圍繞接口對Go語言的動態特性展開探索,包括裝箱、方法集、動態派發、類型斷言、類型繫統和反射等。
    第6章介紹goroutine的實現,包括GMP模型、goroutine的創建與退出、調度循環、搶占式調度、timer、netpoller和監控線程等。
    第7章介紹同步的原理及其相關的組件,包括內存亂序、原子指令、自旋鎖、Go語言runtime中的互斥鎖和信號量,以及sync.Mutex和channel等。
    第8章介紹堆內存管理,包括heapArena、mspan等幾種主要的數據結構,mallocgc函數的主要邏輯,以及GC的三色抽像、寫屏障等。
    第9章介紹棧內存管理,包括goroutine棧的分配、增長、收縮和釋放等。
    閱讀建議
    本書寫作過程主要使用了Go 1.16及之前的幾個版本,為了避免後續版本可能發生的不兼容問題,相關示例建議使用Go 1.13~Go 1.16編譯運行。
    閱讀本書不需要精通彙編語言、操作繫統,但是需要對進程、線程這類基本概念有所了解。畢竟Go語言可直接構建生成繫統原生的可執行文件,如果想要深入理解一些語言特性的實現原理,還是建議學習並實踐一下多線程編程、IO多路復用這類關鍵技術。
    部分主要包括指針和函數,筆者希望大家能夠通過這部分內容,對運行時棧及函數棧幀的相對尋址方式有深入的理解,為後續探索打下堅實的基礎。
    第二部分想要表達對Lippman大師的崇高敬意,至今難忘初次閱讀《深度探索C 對像模型》時那種“初聞大道,喜不自勝”的心情。按照Lippman大師的解釋,對像模型應該是編譯器對自定義數據類型的建模,指導了對像內存布局及其他一些數據結構和代碼的生成。隻有理解了語言特性的實現原理,纔真正是磨刀不誤砍柴工。
    第三部分從服務器端程序開發的角度,梳理了如何從初的多進程、多線程,逐漸發展到現在的協程。runtime的調度邏輯還是比較復雜的,但是核心的思想就是IO多路復用與協程的結合,讓每個任務有自己獨立的棧,而同步的核心就是確立Happens Before條件。
    第四部分從堆和棧兩方面,梳理了內存管理的實現。內存分配方面應重點關注主要的數據結構。至於GC方面,應先理解宏觀層面的整體思想和流程,然後去研究一些細節會更加容易。整個runtime實際上是個不可分割的整體,在這裡會看到內存管理對類型繫統的依賴。
    本書源代碼
    掃描下方二維碼,可獲取本書源代碼: 



    本書源代碼



    致謝
    感謝那些喜愛Go語言的網友對筆者的支持; 感謝清華大學出版社的趙佳霓編輯; 感謝我的家人,尤其是和我一起討論技術問題並幫忙整理書稿的妻子,給予我莫大的支持。
    由於時間倉促,並且受限於筆者水平,書中難免有不妥之處,請讀者見諒,並提寶貴意見。
    封幼林2022年5月


     


     


     


     


     


     

















     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部