天天看點

多線程程式設計指南【中文完整翻譯版】 - Threading Programming Guide

【老狼推薦】多線程程式設計指南

原文:Threading Programming Guide

連結:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html#//apple_ref/doc/uid/10000057i-CH1-SW1

PDF文檔下載下傳:  

多線程程式設計指南【中文完整翻譯版】 - Threading Programming Guide

多線程程式設計指南.pdf (1427 K) 下載下傳次數:3874   

PS:

【翻譯緣由---翻譯本身也是強化學習的過程】

       之前一直在CocoaChina上面潛水,雖然做iOS開發也快2年了,但是總覺得缺少了點什麼。以前檢視英文API文檔,有些細節總是記不住,每次看完之後也沒什麼印象。忽然有一天有人向我抱怨說檢視官方英文API文檔太痛苦了,然後我就想如果我把一些常用的官方文檔翻譯為中文的話,或許可以幫助這批需要幫助的人,然後偶就心血來潮,開始了自娛自樂的翻譯之旅。幫助别人的同時,自己也獲得快樂。

       多線程程式設計在開發應用的時候非常有幫助。比如你可以在背景加載圖檔,等圖檔加載完成後再在主線程更新等,或者在背景處理一些需要占用CPU很長時間的事件(比如請求伺服器,加載資料等)。要體會多線程程式設計的好處,還得多實戰,結合使用多種多線程技術。特别要注意Run Loop的使用,很多開發者在編寫多線程應用的時候很少關注過Run Loop。如果你仔細閱讀并掌握Run Loop的細節,将會幫助你寫出更優美的代碼。同步是多線程程式設計的老生常談,估計大學時候大家都基本熟悉了同步的重要性。

      本文在翻譯過程中發現很多地方直譯成中文比較晦澀,是以采用了意譯的方式,這不可避免的造成有一些地方可能和原文有一定的出入,是以如果你閱讀的時候發現有任何的錯誤都可以給我發郵件:[email protected]

大家也可以關注我微網誌一起溝通交流學習。

微網誌位址: http://weibo.com/u/1826448972

最後希望這篇文檔能幫上那些感覺看官方英文文檔困難的人。如果可以我還是推薦盡量檢視英文原文檔,畢竟那是原汁原味,翻譯總無法避免有一定的疏漏。

下期預告:Core Data 程式設計指南

因為翻譯的時候寫在word裡面,格式太多,圖檔上傳麻煩,是以幹脆直接轉換為PDF提供給大家下載下傳。

以下提供目錄預覽:

目錄

多線程程式設計指南    

簡介    

本文檔結構    

第一章    關于多線程程式設計    

    1.1    什麼是多線程    

    1.2    線程術語    

    1.3    多線程的替代方法    

    1.4    線程支援    

        1.4.1    線程包    

        1.4.2    Run Loops    

        1.4.3    同步工具    

        1.4.4    線程間通信    

    1.5    設計技巧    

        1.5.1    避免顯式建立線程    

        1.5.2    保持你的線程合理的忙    

        1.5.3    避免共享資料結構    

        1.5.4    多線程和你的使用者界面    

        1.5.5    了解線程退出時的行為    

        1.5.6    處理異常    

        1.5.7    幹淨地中斷你的線程    

        1.5.8    線程安全的庫    

第二章    線程管理    

    2.1    線程成本    

    2.2    建立一個線程    

        2.2.1    使用NSThread    

        2.2.2    使用POSIX的多線程    

        2.2.3    使用NSObject來生成一個線程    

        2.2.4    使用其他線程技術    

        2.2.5    在Cocoa程式上面使用POSIX線程    

    2.3    配置線程屬性    

        2.3.1    配置線程的堆棧大小    

        2.3.2    配置線程本地存儲    

        2.3.3    設定線程的脫離狀态    

        2.3.4    設定線程的優先級    

    2.4    編寫你線程的主體入口點    

        2.4.1    建立一個自動釋放池(Autorelease Pool)    

        2.4.2    設定異常處理    

        2.4.3    設定一個Run Loop    

    2.5    中斷線程    

第三章    RUN LOOPS    

    3.1    RUN LOOP剖析    

        3.1.1    Run Loop 模式    

        3.1.2    輸入源    

    3.2    何時使用RUN LOOP    

    3.3    使用RUN LOOP對象    

        3.3.1    獲得Run Loop對象    

        3.3.2    配置Run Loop    

        3.3.3    啟動Run Loop    

        3.3.4    退出Run Loop    

        3.3.5    線程安全和Run Loop對象    

    3.4    配置RUN LOOP 的源    

        3.4.1    定義自定義輸入源    

        3.4.2    配置定時源    

        3.4.3    配置基于端口的輸入源    

第四章    線程同步    

    4.1    同步工具    

        4.1.1    原子操作    

        4.1.2    記憶體屏障和 Volatile 變量    

        4.1.3    鎖    

        4.1.4    條件    

        4.1.5    執行Selector例程    

    4.2    同步的成本和性能    

    4.3    線程安全和信号量    

    4.4    線程安全設計的技巧

        4.4.1    完全避免同步    

        4.4.2    了解同步的限制    

        4.4.3    注意對代碼正确性的威脅    

        4.4.4    當心死鎖(Deadlocks)和活鎖(Livelocks)    

        4.4.5    正确使用Volatile變量    

    4.5    使用原子操作    

    4.6    使用鎖    

        4.6.1    使用POSIX互斥鎖    

        4.6.2    使用NSLock類    

        4.6.3    使用@synchronized指令    

        4.6.4    使用其他Cocoa鎖    

    4.7    使用條件    

        4.7.1    使用NSCondition類    

        4.7.2    使用POSIX條件    

附錄A:線程安全總結    

    COCOA        

    基礎架構(Fondation Framework)的線程安全    

    Application Kit架構的線程安全    

    Core Data架構    

    CORE FOUNDATION(核心架構)    

術語表    

結束語    

推薦資源    

PDF文檔下載下傳:  

多線程程式設計指南【中文完整翻譯版】 - Threading Programming Guide

多線程程式設計指南.pdf (1427 K) 下載下傳次數:3874   

推薦資源:

核心動畫程式設計指南【Core Animation Programming Guide】

下載下傳位址:

http://www.cocoachina.com/bbs/read.php?tid=84461&fpage=3

Blocks程式設計要點【Blocks Programming Topics】

下載下傳位址:

http://www.cocoachina.com/bbs/read.php?tid=87593

Instruments 使用者指南【Instruments User Guide】

下載下傳位址:

http://www.cocoachina.com/bbs/read.php?tid=92026

本地和推送通知程式設計指南【Local and Push Notification Programming Guide】

下載下傳位址:

http://www.cocoachina.com/bbs/read.php?tid=98797

Core Data 程式設計指南【Core Data Programming Guide】

下載下傳位址:【近期推出,敬請關注微網誌動态】

多線程程式設計指南【中文完整翻譯版】 - Threading Programming Guide

來源位址:

http://www.cocoachina.com/bbs/read.php?tid=87592

繼續閱讀