iPhone:一个对象,一个线程

Gin*_*ane 3 iphone concurrency multithreading objective-c nsthread

在iPhone上,我想在一个单独的线程中对图像进行一些操作.我不想处理semiphores,锁定等,而是使用'One Object,One Thread'方法安全地编写这个并发操作.我不确定将对象复制到新线程的正确方法是什么,以便在主线程中不访问该对象.我使用'复制'方法吗?如果是这样,我是在线程之前还是在线程内部这样做?

     ...
    -(void)someMethod{
        UIImage *myImage;
        [NSThread detachNewThreadSelector:@selector(getRotatedImage:) toTarget:self withObject:myImage];

    }

    -(void)getRotatedImage:(UIImage *)image{
        ...
        ...
        UIImage *copiedImage = [image copy];
        ...
        ...
    }
Run Code Online (Sandbox Code Playgroud)

kyo*_*ryu 5

通常,在实现这样的事情时,您不会为每个对象创建单个线程 - 相反,当您为对象获取某些内容时,您将其排队以由线程池处理.

根据对象的数量,每个对象的一个​​线程不会扩展得很远.