OGeek|极客世界-中国程序员成长平台

标题: iphone - 通过使用 threadDictionary,此代码线程安全吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:16
标题: iphone - 通过使用 threadDictionary,此代码线程安全吗?

+(NSString*)FromNumberNSNumber*)number
{
    NSString *key = akey;
    NSNumberFormatter *numberFormatter = [[[NSThread currentThread] threadDictionary] objectForKey:key];
    if(!numberFormatter)
    {
        numberFormatter = [self getDecimalNumberFormatterWithDigits:2];
        [numberFormatter setFormatterBehavior:NSNumberFormatterPercentStyle];

        [numberFormatter setNegativeSuffix"%"];
        [numberFormatter setPositiveSuffix"%"];
        [numberFormatter setNilSymbol""];
        [numberFormatter setLocale:[ISMDateUtilities enUSPosixLocale]];

        [[[NSThread currentThread] threadDictionary] setValue:numberFormatter forKey:key];
    }
    return [numberFormatter stringForObjectValue:number];
}

我很好奇的是使用 threadDictionary 来同步代码块?

谢谢!



Best Answer-推荐答案


这段代码的线程安全取决于 akey 是一个常量。如果是,那么是的,这个方法是线程安全的,因为它在线程之间不共享任何状态。 (不过,我不确定您所说的“同步”是什么意思——据我所知,这里没有同步工作。)

关于iphone - 通过使用 threadDictionary,此代码线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980074/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4