线程之间的通信

同步工具

锁(locks),条件(condition),原子操作(atomic)

线程间通信

Direct messaging: Cocoa应用可以直接perform某个selector在指定线程
全局变量,共享内存和对象。
Conditions:一种特殊类型的锁
Run loop sources:简单的来说,run loop是用来在线程上管理时间异步到达的工具。run loop能为线程监听一个或多个事件源(event sources)。run loop能把线程置于休眠状态,而当事件到达时,系统能唤醒线程并把事件分发给run loop,而后run loop能将事件分发给特定的handler。
Ports and sockets:也使用run loop,不同之处在于可以进行多进程通信
Message queues:历史遗物,一种多进程通信的玩意,才用FIFO的信息队列,但是有效率问题,
Cocoa distributed objects:好高级的技术,可以在call不同cocoa应用的object,甚至跨越网络的不同计算机上的cocoa应用。

转载:http://gracelancy.com/blog/2013/05/02/OSX-iOS-Threading-Programming/

你可能感兴趣的:(线程之间的通信)