在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/iOS  網(wǎng)絡(luò)安全/ iOS中,使用GCD和不實用GCD創(chuàng)建單利有什么區(qū)別以及哪個更好?

iOS中,使用GCD和不實用GCD創(chuàng)建單利有什么區(qū)別以及哪個更好?

如題。創(chuàng)建單利的時候有多種方式。那么使用GCD和不實用GCD創(chuàng)建單利有什么區(qū)別以及哪個更好?

回答
編輯回答
懶豬

GCD 線程安全,還有onceToken參數(shù)保證 gcd里面的代碼在程序的運行時只執(zhí)行一次,除非onceToken重新設(shè)置成0。不使用GCD,你alloc,copy 一個單例的對象時,很容易生成一個新的對象,如果使用不當。

2017年2月26日 13:59
編輯回答
命于你

以前只考慮到線程安全,加了鎖保證更加的安全
因為分配初始化的代碼總是需要一定時間,哪怕極小,如果這時還有其他線程同時或在創(chuàng)建前訪問,這個變量由于還沒有初始地址,于是可能會出現(xiàn)再創(chuàng)建一次的情況,而gcd不一樣,block可以保證 下一次的訪問必須等待前一次結(jié)果執(zhí)行完成,這樣才真正的保證了在每次app運行 只執(zhí)行一次

查了下,這篇文章寫的更好

2018年9月14日 21:59