国产探花免费观看_亚洲丰满少妇自慰呻吟_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

主站蜘蛛池模板: 五莲县| 保靖县| 桓仁| 澎湖县| 米脂县| 柘荣县| 佛冈县| 若尔盖县| 隆林| 河西区| 屯留县| 江华| 新兴县| 五常市| 大邑县| 宁化县| 吉木乃县| 禹城市| 岑溪市| 崇文区| 黄山市| 年辖:市辖区| 佛学| 安阳市| 琼海市| 开封市| 庐江县| 武乡县| 宝兴县| 吉水县| 宣城市| 贵南县| 珠海市| 天祝| 山阳县| 枣庄市| 齐齐哈尔市| 万盛区| 铁岭县| 张北县| 册亨县|