iPhone:一个对象,一个线程

标签 iphone objective-c multithreading concurrency nsthread

在 iPhone 上,我想在单独的线程中对图像进行一些操作。我不想处理信号量、锁定等,而是想使用“一个对象,一个线程”的方法来安全地编写这个并发操作。我不确定将我的对象复制到新线程的正确方法是什么,这样该对象就不会在主线程中被访问。我使用“复制”方法吗?如果是这样,我是在线程之前还是在线程内部执行此操作?

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

    }

    -(void)getRotatedImage:(UIImage *)image{
        ...
        ...
        UIImage *copiedImage = [image copy];
        ...
        ...
    }

最佳答案

通常,当实现这样的事情时,您不会为每个对象创建一个线程 - 相反,当您为对象做某事时,您将其排队等待线程池处理。

根据对象的数量,每个对象一个线程的扩展性不会很大。

关于iPhone:一个对象,一个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2430193/

相关文章:

iphone - 如何通过从屏幕上删除 UIImageViews 来安全地释放内存?

iphone - 在 AppDelegate 中实例化的 UINavigationController

iphone - 应用程序无法看到 @2x 图像

ios - 有没有办法使用 RubyMotion 在 UITableViewController 中重新加载数据?

iphone - ios UISwipeGestureRecognizer 计算偏移量

ios - SQlite 在 iOS App 中插入数据

java - 我们真的需要EDT吗?

ios - 因类型为 Realm::LogicError: 数据类型不匹配的未捕获异常而终止

c - C 中的多线程使用线程安全随机数

C#.Net - 线程在一个循环中抓取相同的文件