多线程的概述(一)
程序 :由源代碼生成的可執(zhí)行應(yīng)用 QQ.app? 進(jìn)程 :一個(gè)正在運(yùn)行的程序可以看作是一個(gè)進(jìn)程,擁有獨(dú)立運(yùn)行所需的全部資源 線程 :程序中獨(dú)立運(yùn)行的代碼段 一個(gè)進(jìn)程是由一個(gè)或多個(gè)線程組成。進(jìn)程只負(fù)責(zé)資源的調(diào)度和分配,線程才是程序真正的執(zhí)行單元,負(fù)責(zé)代碼的執(zhí)行。 單線程 :每個(gè)正在運(yùn)行的程序就是上面說的進(jìn)程,至少包含一個(gè)線程,這個(gè)線程叫主線程。主線程在程序啟動(dòng)時(shí)被創(chuàng)建,用于執(zhí)行main函數(shù)。那么只有一個(gè)主線程的程序就稱作 單線程程序。在單線程程序中,主線程要負(fù)責(zé)執(zhí)行程序的所有代碼(UI的展現(xiàn)和刷新、網(wǎng)絡(luò)請求、本地存儲(chǔ)等等),這些代碼只能 順序執(zhí)行 而無法 并發(fā)執(zhí)行。 這樣就引出了多線程 多線程 :同理 擁有多個(gè)線程的程序就稱作多線程程序。iOS允許用戶自己根據(jù)需要開辟若干新的線程,相對于主線程來說,這些線程叫子線程。不管是主線程還是子線程都是獨(dú)立的運(yùn)行單元,各自的執(zhí)行互不影響,因此能夠并發(fā)執(zhí)行。 單線程和多線程的區(qū)別 單線程程序 :只有一個(gè)線程即主線程,代碼順序執(zhí)行,容易出現(xiàn)代碼阻塞(頁面假死)。 多線程程序 :與多個(gè)線程,線程間獨(dú)立運(yùn)行,能有效的避免代碼阻塞,并且提高程序的運(yùn)行性能。 **注意:iOS中關(guān)于UI的添加和刷新必須在主線程中操作 iOS平臺(tái)下的多線程有以下4個(gè)實(shí)現(xiàn)種類 NSThread NSOprationQueue NSObject GCD
轉(zhuǎn)載于:https://www.cnblogs.com/xs514521/p/5467237.html
總結(jié)
- 上一篇: 02、django中的上下文
- 下一篇: android emulator虚拟设备