提到執行緒第一反應其他概念程序,作業系統。
執行緒就是幹活的人。多執行緒就是多個人幹活。執行緒可以分ui執行緒和工作執行緒。ui執行緒就是前台工作者,一般都是小姑娘。工作執行緒就是後台工人(幹些苦活累活的)
前台吩咐後台幹活,後台幹完了要通知前台。這就是男女搭配,幹活不累。前台和後台共用乙個廁所。這時男女有別,所以門上需要乙個縮。需要誰先占用,誰使用。
執行緒爭奪資源互動模型:生產者-消費者;讀寫;早餐問題;特別注意;執行緒死鎖問題
程序則是資源提供者,負責管理各種資源。
程序是個容器,執行緒則是在程序裡面跑。
多執行緒的問題
1)死鎖
2)無限延遲
3)競爭
同步問題的出現
1)資料從記憶體裝載到暫存器
2)在暫存器上運算
3)資料從暫存器寫回記憶體
這三個步驟存在交替,就出現問題了。
同步機制:
鎖:訊號量 : 比互斥量有更好的併發性
假如我們用互斥量來控制對緩衝的訪問,那麼生產者,消費者不能同時訪問緩衝。然而,我們知道在同一時刻,不同執行緒訪問緩衝的不同部分並沒有什麼危害。
執行緒的作用
1)解決執行較長時間的操作而不至於使用者介面失去響應。
2)提高多核使用率。
使用執行緒的主要想法是希望它們可以盡可能併發執行,而一些關鍵點上線程之間需要停止或等待。例如,假如兩個執行緒試圖同時訪問同乙個全域性變數
累了,不寫了。繼續寫我的程式了。
多執行緒篇 RunLoop
簡述 1 runloop是事件接收和分發機制的乙個實現 3 以及節省cpu資源,提高程式效能 該做事時做事,該休息時休息 如何獲取runloop物件 這裡的話ios提供了兩套api來訪問或使用runloop 1 cfrunloopref 是在 corefoundation 框架內的,它提供了純 c ...
iOS開發 多執行緒篇 多執行緒介紹
一 程序和執行緒 1 什麼是程序 程序是指在系統中正在執行的乙個應用程式 每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內 比如同時開啟迅雷 xcode,系統就會分別啟動2個程序 通過 活動監視器 可以檢視mac系統中所開啟的程序 3 執行緒的序列 1個執行緒中任務的執行是序列的 ...
iOS開發多執行緒篇 多執行緒簡單介紹
ios開發多執行緒篇 多執行緒簡單介紹 一 程序和執行緒 1.什麼是程序 程序是指在系統中正在執行的乙個應用程式 每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內 比如同時開啟qq xcode,系統就會分別啟動2個程序 通過 活動監視器 可以檢視mac系統中所開啟的程序 2.什麼是...