国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發中多線程的安全隱患總結

2020-07-26 02:19:36
字體:
來源:轉載
供稿:網友

資源共享

1塊資源可能會被多個線程共享,也就是多個線程可能會訪問同一塊資源

比如多個線程訪問同一個對象、同一個變量、同一個文件

當多個線程訪問同一塊資源時,很容易引發數據錯亂和數據安全問題

一、解決方案

解決方案:使用線程同步技術(同步,就是協同步調,按預定的先后次序進行)

常見的線程同步技術是:加鎖

1、OSSpinLock

OSSpinLock叫做”自旋鎖”,等待鎖的線程會處于忙等(busy-wait)狀態,一直占用著CPU資源

目前已經不再安全,可能會出現優先級反轉問題

如果等待鎖的線程優先級較高,它會一直占用著CPU資源,優先級低的線程就無法釋放鎖

需要導入頭文件#import<libkern/OSAtomic.h>

2、os_unfair_lock

os_unfair_lock用于取代不安全的OSSpinLock,從iOS10開始才支持

從底層調用看,等待os_unfair_lock鎖的線程會處于休眠狀態,并非忙等

需要導入頭文件#import<os/lock.h>

3、pthread_mutex

mutex叫做”互斥鎖”,等待鎖的線程會處于休眠狀態

需要導入頭文件#import<pthread.h>

pthread_mutex

主站蜘蛛池模板: 汝城县| 财经| 梁山县| 肥西县| 松阳县| 张家港市| 河池市| 灯塔市| 伽师县| 平山县| 共和县| 阳新县| 阳原县| 蚌埠市| 寿宁县| 沂水县| 中牟县| 台前县| 枞阳县| 灵丘县| 定州市| 若尔盖县| 融水| 海南省| 武威市| 高安市| 隆回县| 正宁县| 馆陶县| 九龙城区| 依安县| 镇江市| 农安县| 桐城市| 松桃| 思茅市| 喀喇| 黑山县| 中方县| 郯城县| 杭锦后旗|