有没有办法执行整个objective-c函数原子?
据我所知,使用synchronized只能保护特定的代码安全,不会同时在多个线程上执行。但是我想要的是阻止所有其他线程执行任何操作,只要我执行该函数。
答案 0 :(得分:3)
Threading Programming Guide中有大量信息。它特别提到避免同步(这很有趣,有时候你不能)但是他们提出了一些关于这个问题的建议。
如果您开始在多核上运行软件,那么您的设计会遇到严重问题。停止所有内核运行以运行您的代码是一项非常昂贵的操作。互斥体,信号量,运行循环事件和原子操作是可行的方法。
答案 1 :(得分:2)
不。不能这样做。
或者,如果你在Mach API中足够深入(无论如何在Mac OS X上),你可能会这么做。
但你不应该这样做。
为什么你认为你想这样做?