本文講述在何種情況下,一個協程(goroutine)中寫入的變量值可被另一個協程中觀察到。
先發生(happens before)
讓我們來理清下時間的發生順序。
如果事件 e1在事件 e2 之前發生,那麼事件 e2 在事件 e1 之後發生。同樣,如果 e1 既不在事件 e2 之前也不在 e2 之後發生,那麼事件 e1 和 e2 同時發生。
區分幾個概念:
開始介紹 Unicode 之前,我們先來做一道不定項選擇題。
問題1:請問以下說法正確的是() |
答案文章末尾揭曉,如果著急想對答案可以先翻到末尾核對;如果想知道為什麼,那就帶著問題繼續往下看吧。
Unicode 是一種國際通用的字符集。
什麼是字符?計算機中的字符分為兩種:打印字符和非打印字符。打印字符包括數字、字母、漢字、假名、標點符號等等,非打印字符又稱之為控制字符,常見的有:回車(’\r’,U+000D)、換行(’\n’,U+000A)等等。
問題2:數字 123 由()個字符組成? |
什麼是字符集?字符集就是字符的集合,不同的字符集包含的字符類型和數量可能不一樣。Unicode 是字符集的一種。
字符之所以能被計算機處理,其中最為關鍵的是字符能夠被正確地編碼和解碼。字符的編碼是字符在對應字符集中的序號。此序號是一個整數,稱之為字符碼點 (code point)。不同的字符集可能會對同樣的字符有不同的碼點表示,甚至沒有表示(並不是所有字符在字符集中都有定義)。
pprof 是 program profiling(程序分析)的縮寫,是 Go程序中重要的性能分析工具,包含兩個部分:
go tool pprof <source>
工具分析採集到的數據。