簡體   English   中英

NSDateFormatter內部dispatch_async

[英]NSDateFormatter inside dispatch_async

我對如何在dispatch_async中使用NSDateFormatter感到有些困惑。 我讀過它不是線程安全的,但這是否意味着我每次在dispatch_async中使用它時都必須創建一個新實例,還是可以將其用作靜態代碼,如下面的代碼所示? 由於它是一個串行隊列,我想無論如何不能同時從多個位置訪問它?

dispatch_async(video_sync_request_operation_processing_queue(), ^{

    static NSDateFormatter *dateFormatter = nil;
    if (!dateFormatter) {
        dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
        [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
        [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
    }

    ...

});
  1. 如果是串行隊列,則不必擔心線程安全,因為這些任務永遠不會同時運行。

  2. 如果要在並發線程上使用不是線程安全的類實例,則應為將要使用它的那個實例專門創建一個串行隊列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM