Month: May 2017

  • 深入 GIL: 如何寫出快速且 thread-safe 的 Python – Grok the GIL: How to write fast and thread-safe Python

    深入 GIL: 如何寫出快速且 thread-safe 的 Python – Grok the GIL: How to write fast and thread-safe Python

    本文將會探討 Python 內部的 Global Interpreter Lock,以及學習其如何影響 multi-threaded 程式。  原作者:A. Jesse,Twitter: @jessejiryudavis 原文:Grok the GIL: How to write fast and thread-safe Python Louie Lu 經作者同意[1][2]翻譯為正體中文。 當我6歲時,我有一個音樂盒。我將他上緊發條,在上面的芭蕾舞者開始繞圈,而盒子內的機關開始敲打,發出「一閃一閃亮晶晶」的聲音。雖然這東西肯定很廉價,不過我喜歡這個音樂盒,而我想要知道他是怎麼運作的。總之,我打開了這個音樂盒,看到了裏面的裝置 ── 一個我拇指大小的金屬圓筒,安裝得當的讓他可以旋轉,透過凸起的牙齒與鋼梳撞擊後發出音符。 在程式設計師的特點中,關於事情如何運作的好奇心是必不可缺的。當我打開我的音樂盒觀看內部時,我展現我可能是一個 ── 如果不是一個頂尖程式設計師 ── 起碼也會是好奇的一個。 這很奇怪,我在對 Global Interpreter Lock (GIL) 誤解的情況下寫了 Python 程式這麼久,因為我還沒有足夠的好奇心來了解他是如何運作的。我遇到很多人跟我有著同樣的猶豫,以及無知。 該是時候把這個黑盒子翹開了。讓我們閱讀 CPython 原始碼來了解什麼是 GIL,為什麼 Python 會有,以及他是如何影響我們撰寫 multi-threaded 程式。我會給出一些範例來讓你了解 GIL。你會學到如何快速寫出 thread-safe 的 Python,以及如何在 threads 與 processes 之間選擇。…

  • 我對 PyCon US 2017 感興趣的 18 個 Talks

    我對 PyCon US 2017 感興趣的 18 個 Talks

    PyCon US 2017 即將在美國奧瑞岡開始,快速瀏覽了一下 talk list,真不愧是 PyCon US,每個題目都看起來非常的高大上而且紮實。以下是我挑選 18 個我有興趣的主題,記錄下來。 完整的 talk list 可以參考這邊: PyCon US 2017 Talks Schedule: https://us.pycon.org/2017/schedule/talks/ PyCon US 2017 Talks List: https://us.pycon.org/2017/schedule/talks/list/ 排列順序依照 Talks List 由上而下排列,順序不代表我對於主題的興趣多寡: aiosmtpd – A better asyncio based SMTP server Barry Warsaw Sunday 2:30 p.m.–3 p.m. in Oregon Ballroom 203–204 講關於 async 版本的 smtpd 實作。總之因為還沒有搞清楚 3.5 引入的 async / await,因此對於有關…