mam*_*mcx 5 concurrency yield channel objective-c go
我想知道如何为obj-c 创建一个CSP库,它像Go的channel/goroutine 一样工作,但是具有惯用的obj-c(并且比实际的方式更少的样板).
在使用原生courutines和/或生成器的其他语言中,可以轻松地对其进行建模,但我不知道如何使用obj-c中的并发编程的几种方法(另外,这个想法有"廉价"线程) ).
关于我需要做什么的暗示?
我会看看State Threads 库,因为它实现了与 Go 的 goroutine 切换算法基本相同的想法:当 goroutine 将在系统调用中休眠时,它会将控制权交给调度程序,因此 ST 库包装了操作系统级文件描述符提供它们自己的类似 FD 的对象,这些对象可以读取(和/或写入),但这些操作不会阻塞整个进程,而是将控制权转移到库管理的其他轻量级线程。
那么您可能需要一个比 ST 库更先进的调度程序,以保持操作系统线程忙于运行 SP。这里是对 Go 1.2 调度器的简单介绍,它包含指向更核心设计文档的链接。其余部分在 Go 的源代码中。
另请参阅SO 上的这个答案。
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |