一、共享資源
共享資源 : 就是內(nèi)存中的一塊資源同時被多個線程所訪問,而每個線程可能會對該資源的數(shù)據(jù)進(jìn)行修改
問題 : 如果 線程A 訪問了某塊資源 C,并且修改了其中的數(shù)據(jù),此時 線程B 也訪問了 資源C,并且也對 C 中的數(shù)據(jù)進(jìn)行了修改;那么等到 線程A 和 線程B 執(zhí)行結(jié)束后,此時,資源C 中的數(shù)據(jù)就并不是最初的設(shè)置了
二、線程通信
通常, 一個線程不應(yīng)該單獨(dú)存在,應(yīng)該和其他線程之間有關(guān)系
例如 : 一個線程完成了自己的任務(wù)后需要切換到另一個線程完成某個任務(wù);或者 一個線程將數(shù)據(jù)傳遞給另一個線程
三、線程的狀態(tài)
-
當(dāng)一個線程對象創(chuàng)建并開啟后,它就會被放到線程調(diào)度池中,等待系統(tǒng)調(diào)度;如圖
-
當(dāng)正在運(yùn)行的線程被阻塞時,就會被移出 可調(diào)度線程池,此時不可再調(diào)度它
-
當(dāng)線程正常結(jié)束,異常退出,強(qiáng)制退出時都會導(dǎo)致該線程死亡,死亡的線程會從內(nèi)存中移除,無法調(diào)度
更多:iOS面試題合集


