From d6c1338120003aecbb968204fd9e604098574023 Mon Sep 17 00:00:00 2001 From: chai2010 Date: Thu, 24 Dec 2015 15:10:32 +0800 Subject: [PATCH] zz --- SUMMARY-github.md | 2 +- ch13/ch13-04.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SUMMARY-github.md b/SUMMARY-github.md index 96b3a81..69c3564 100644 --- a/SUMMARY-github.md +++ b/SUMMARY-github.md @@ -1,4 +1,4 @@ -# Go聖經讀書筆記 +# Go語言聖經(中文版) * [前言](preface.md) * [0.1. Go語言起源](ch0/ch0-01.md) diff --git a/ch13/ch13-04.md b/ch13/ch13-04.md index a9d583f..e7e1393 100644 --- a/ch13/ch13-04.md +++ b/ch13/ch13-04.md @@ -162,7 +162,7 @@ func (w *writer) Close() error { } ``` -壓縮完成後,Close方法用了defer函數確保函數退齣前調用C.BZ2_bzCompressEnd和C.bz2free釋放相關的C資源。此刻w.stream指針將不在有效,我們將它設置爲nil以保證安全,然後在每個方法中增加了nil檢測,以防止用戶在關閉後依然錯誤使用相關方法。 +壓縮完成後,Close方法用了defer函數確保函數退齣前調用C.BZ2_bzCompressEnd和C.bz2free釋放相關的C语言运行时資源。此刻w.stream指針將不再有效,我們將它設置爲nil以保證安全,然後在每個方法中增加了nil檢測,以防止用戶在關閉後依然錯誤使用相關方法。 上面的實現中,不僅僅寫是非併發安全的,甚至併發調用Close和Write方法也可能導致程序的的崩潰。脩複這個問題是練習13.3的內容。 @@ -210,5 +210,5 @@ $ ./bzipper < /usr/share/dict/words | bunzip2 | sha256sum **練習 13.3:** 使用sync.Mutex以保證bzip2.writer在多個goroutines中被併發調用是安全的。 -**練習 13.4:** 因爲C庫依賴的限製。 使用os/exec包啟動/bin/bzip2命令作爲一個子進程,提供一個純Go的bzip.NewWriter的替代實現(譯註:雖然是純Go實現,但是運行時將依賴/bin/bzip2目録,其他操作繫統可能無法運行)。 +**練習 13.4:** 因爲C庫依賴的限製。 使用os/exec包啟動/bin/bzip2命令作爲一個子進程,提供一個純Go的bzip.NewWriter的替代實現(譯註:雖然是純Go實現,但是運行時將依賴/bin/bzip2命令,其他操作繫統可能無法運行)。