幫助中心 | 我的帳號 | 關於我們

Rust併發編程實戰

  • 作者:(荷)瑪拉·博斯|責編:劉熾|譯者:李好//李輝
  • 出版社:中國電力
  • ISBN:9787519891909
  • 出版日期:2025/01/01
  • 裝幀:平裝
  • 頁數:269
人民幣:RMB 88 元      售價:
放入購物車
加入收藏夾

內容大鋼
    Rust編程語言非常適合併發編程,並且其生態系統中有許多庫包含大量併發數據結構、鎖等。但正確實現這些結構可能會很困難。即使在使用最廣泛的庫中,內存順序錯誤也並不少見。
    在這本非常實用的書中,Rust庫團隊負責人MaraBos幫助各個級別的Rust程序員清晰地理解底層併發性。你將學習有關原子操作和內存順序的一切,以及它們如何與基本操作系統API結合使用來構建諸如互斥鎖和條件變數之類的常見原語。完成後,你將牢固掌握Rust的內存模型、處理器以及操作系統是如何相互配合的。
    通過本書,你將學到:
    Rust的類型系統和正確的併發編程如何非常好地配合。
    有關互斥鎖、條件變數、原子操作和內存順序的一切。
    在英特爾和ARM處理器上進行原子操作時會發生什麼情況。
    鎖是如何借助操作系統的支持來實現的。
    如何編寫包含併發、原子操作和鎖的正確代碼。
    如何正確構建自己的鎖和同步原語。

作者介紹
(荷)瑪拉·博斯|責編:劉熾|譯者:李好//李輝
    瑪拉·博斯(Mara Bos)維護著Rust標準庫,並用Rust構建實時控制系統。作為Rust庫團隊的負責人,她熟知該語言和標準庫的方方面面。此外,作為Fusion Engineering的創始人兼首席技術官,她多年來一直致力於併發實時系統的工作。維護Rust生態系統中最常用的庫,並每天致力於安全相關係統的工作,使她具備了豐富的實踐經驗,既能理解理論又能將其付諸實踐。

目錄

前言
第1章  Rust併發基礎
  1.1  Rust中的線程
  1.2  作用域線程
  1.3  共享所有權和引用計數
    1.3.1  靜態對象
    1.3.2  泄漏
    1.3.3  引用計數
  1.4  借用和數據競爭
  1.5  內部可變性
    1.5.1  Ce
    1.5.2  RefCe
    1.5.3  Mutex和RwLock
    1.5.4  原子類型
    1.5.5  UnsafeCell
  1.6  線程安全性:Send和Sync
  1.7  鎖:互斥鎖和讀寫鎖
    1.7.1  Rust的互斥鎖
    1.7.2  鎖中毒
    1.7.3  讀寫鎖
  1.8  等待:線程停放與條件變數
    1.8.1  線程停放
    1.8.2  條件變數
  1.9  總結
第2章  原子性
  2.1  原子載入和存儲操作
    2.1.1  示例:停止標誌
    2.1.2  示例:進度報告
    2.1.3  示例:延遲初始化
  2.2  獲取-修改操作
    2.2.1  示例:多線程進度報告
    2.2.2  示例:統計
    2.2.3  示例:ID分配
  2.3  比較-交換操作
    2.3.1  示例:無溢出的ID分配
    2.3.2  示例:延遲一次性初始化
  2.4  總結
第3章  內存順序
  3.1  重排與優化
  3.2  內存模型
  3.3  happens-before關係
  3.4  寬鬆順序
  3.5  釋放和獲取順序
    3.5.1  例子:鎖定
    3.5.2  示例:通過間接方式實現延遲初始化
  3.6  消費順序
  3.7  順序一致性順序
  3.8  柵欄
  3.9  常見誤解

  3.10  總結
第4章  構建我們自己的自旋鎖
  4.1  最簡實現
  4.2  不安全的自旋鎖
  4.3  使用鎖衛士的安全介面
  4.4  總結
第5章  構建我們自己的通道
  5.1  一個基於互斥鎖的簡單通道
  5.2  一個不安全的一次性通道
  5.3  通過運行時檢查提高安全性
  5.4  通過類型系統提高安全性
  5.5  通過借用避免分配
  5.6  阻塞
  5.7  總結
第6章  構建我們自己的Arc
  6.1  基礎引用計數
    6.1.1  測測它
    6.1.2  修改
  6.2  弱指針
  6.3  優化
  6.4  總結
第7章  理解處理器
  7.1  處理器指令
    7.1.1  載入和存儲
    7.1.2  Read-Modify-write操作
    7.1.3  Load-Linked指令和Store-Conditiona1指令
  7.2  緩存
    7.2.1  緩存一致性
    7.2.2  對性能的影響
  7.3  重排
  7.4  內存順序
    7.4.1  x86.64:強內存序
    7.4.2  ARM64:弱內存序
    7.4.3  一個實驗
    7.4.4  內存屏障
  7.5  總結
第8章  操作系統原語
  8.1  與內核交互
  8.2  POSIX
  8.3  Linux
    8.3.1  Futex
    8.3.2  Futex操作
    8.3.3  優先順序繼承Futex操作
  8.4  macOS
  8.5  Windows
    8.5.1  重量級內核對象
    8.5.2  輕量級對象
    8.5.3  基於地址的等待
  8.6  總結
第9章  構建我們自己的鎖

  9.1  Mutex
    9.1.1  避免系統調用
    9.1.2  進一步優化
    9.1.3  基準測試
  9.2  條件變數
    9.2.1  避免系統調用
    9.2.2  避免錯誤喚醒
  9.3  讀寫鎖
    9.3.1  避免忙循環的寫入者
    9.3.2  避免寫入者飢餓
  9.4  總結
第10章  想法和靈感
  10.1  信號量
  10.2  RCU
  10.3  無鎖鏈表
  10.4  隊列鎖
  10.5  停車位鎖
  10.6  序列鎖
  10.7  教學材料

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032