欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ios之線程安全

iphone @synchronized

(2011-10-14 00:07:12) 
ios之線程安全轉(zhuǎn)載
標(biāo)簽: 

雜談

分類:iOS

@synchronized(self) {} 這種寫法是什么作用?


如題:

@synchronized(self) {
。。。 。。。
}

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到鐘祥網(wǎng)站設(shè)計(jì)與鐘祥網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鐘祥地區(qū)。

保證此時(shí)沒(méi)有其他線程對(duì)self對(duì)象進(jìn)行修改

Using the @synchronized Directive
The @synchronized directive is a convenient way to create mutex locks on the fly in Objective-C code. The @synchronized directive does what any other mutex lock would do—it prevents different threads from acquiring the same lock at the same time. In this case, however, you do not have to create the mutex or lock object directly. Instead, you simply use any Objective-C object as a lock token, as shown in the following example:

- (void)myMethod:(id)anObj
{
@synchronized(anObj)
{
// Everything between the braces is protected by the @synchronized directive.
}
}
The object passed to the @synchronized directive is a unique identifier used to distinguish the protected block. If you execute the preceding method in two different threads, passing a different object for the anObj parameter on each thread, each would take its lock and continue processing without being blocked by the other. If you pass the same object in both cases, however, one of the threads would acquire the lock first and the other would block until the first thread completed the critical section.

As a precautionary measure, the @synchronized block implicitly adds an exception handler to the protected code. This handler automatically releases the mutex in the event that an exception is thrown. This means that in order to use the @synchronized directive, you must also enable Objective-C exception handling in your code. If you do not want the additional overhead caused by the implicit exception handler, you should consider using the lock classes.


For more information about the @synchronized directive, see The Objective-C Programming Language.

The objective C language level synchronization uses the mutex, just like NSLock does. Semantically there are some small technical differences, but it is basically correct to think of them as two seperate interface implemented on top of a common (more primitive) entity.

In particular with an NSLock you have an explicit lock whereas with @synchronize you have an implicit lock associated with the object you are using to synchronize. The benefit of the language level locking is the compiler understands it so it can deal with scoping issues, but mechanically they are the behave basically the same.

You can think of @synchronize as basically a compiler rewrite:

-(NSString*)myString{
@synchronized(self){
return[[myString retain]autorelease];
}
}

is transformed into:

-(NSString*)myString{
NSString*retval=nil;
pthread_mutex_t*self_mutex=LOOK_UP_MUTEX(self);
pthread_mutex_lock(self_mutex);
retval=[[myString retain]autorelease];
pthread_mutex_unlock(self_mutex);
returnretval;
}

That is not exactly correct because the actual transform is more complex and uses recursive locks, but it should get the point across.

 

網(wǎng)頁(yè)名稱:ios之線程安全
當(dāng)前網(wǎng)址:http://aaarwkj.com/article46/igdphg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、靜態(tài)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
人妻一少妇一区二区三区| 91一区二区三区在线| 久久伊人69日韩精品| 伊人亚洲一区二区三区| 中文字幕精品一区二区介绍| 手机av在线 中文字幕| 国产传媒剧情剧资源网站| 麻豆视频91免费观看| 18禁在线免费观看网站| 哪里可以看黄色片日韩| 丰满人妻一区二三区av| 亚洲女优中文字幕在线免费| 日韩欧美亚洲综合久久精品| 在线麻豆国产传媒免费| 一区二区三区欧美黑人| 午夜毛片免费在线播放| 亚洲精品中文字幕乱码| 亚洲熟女内射特写一区| 国产精品成人av在线网站| 国产av手机自拍看片| 偷拍一区二区三区夫妻| 亚洲av男人的天堂看| 黄色国产一区二区三区| 午夜最新福利在线视频| 欧美日韩亚洲精品久久| 国产精品亚洲欧美中字| 国产大片久久午夜电影| 成人欧美黑人一区二区| 91在线播放国产视频| 黄色18禁网站在线看| 亚洲精品??一区二区| 午夜av一区二区三区| 精品国产一区二区日韩91| 国产午夜草莓视频在线观看| 亚洲天堂欧美日韩一区| 97国产超碰在线观看| 最新91精品手机国产在线| 99精品热视频在线观看| 在线播放欧美视频91| 免费97久久人妻一区精品| 中文精品字幕人妻熟女小妇|