一、多線程的基本概念
(1)進(jìn)程:是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)的基礎(chǔ),主要管理資源。如:一個正在手機(jī)上運行的微信,就是一個進(jìn)程。
(2)線程:是進(jìn)程的基本執(zhí)行單元。一個進(jìn)程至少要有一個線程。
注:進(jìn)程只負(fù)責(zé)資源的調(diào)度與分配,線程才是程序真正的執(zhí)行單元,負(fù)責(zé)代碼執(zhí)行。你可以把進(jìn)程比作食堂,食堂內(nèi)的一個個窗口就相當(dāng)于線程,排隊買飯的學(xué)生,就是線程里面的任務(wù),任務(wù)在線程里面是串行的。食堂最少有一個窗口,同樣進(jìn)程至少要有一個線程。
(3)主線程:一個進(jìn)程至少要有一個線程,這個線程叫做主線程。主線程在程序啟動時被創(chuàng)建,用于執(zhí)行main函數(shù)。主線程主要負(fù)責(zé)處理UI,所有更新UI的操作都必須在主線程上執(zhí)行。不要把耗時操作放在主線程,會卡界面。
(4)多線程:同一時刻,一個CPU只能處理一條線程,但CPU可以在多條線程之間快速的切換,只要切換的足夠快,就造成了多線程并發(fā)執(zhí)行的現(xiàn)象。多線程是通過提高資源使用率來提高系統(tǒng)總體的效率。我們運用多線程,是為了將耗時操作放在后臺執(zhí)行。