我在NSObject.h中发现了一个奇怪的关键字
- (oneway void)release;
我在网上搜索了一下,得知它与异步消息传递有关,这似乎与Erlang的消息传递相似。
看起来这可以做很多有趣的事情。你能给出一些这个关键字的好用例吗?
我在NSObject.h中发现了一个奇怪的关键字
- (oneway void)release;
我在网上搜索了一下,得知它与异步消息传递有关,这似乎与Erlang的消息传递相似。
看起来这可以做很多有趣的事情。你能给出一些这个关键字的好用例吗?
oneway
被用于分布式对象API中,它允许在不同的线程或应用程序之间使用Objective-C对象。它告诉系统在方法返回前不应该阻塞调用线程。如果没有它,调用者会被阻塞,即使方法的返回类型是void。显然,除了void以外,它从未与其他任何东西一起使用,因为这样做意味着方法返回了某些内容,但调用者无法获取它。oneway
关键字会导致消息在调用方法执行时不阻塞调用线程,那么被调用的方法将在第二个线程上执行。这不是最简单形式的多任务吗?我能否使用它将一些小操作快速(不费力)地分离到另一个线程中?非常感谢。 - Constantino Tsarouhas- (oneway void) release
是怎样的情况呢?它不在另一台机器或进程中。 - Constantino Tsarouhas