它通过epochs收集垃圾并根据arena分配所有其内存,处理lambda或C样式的静态void(void*)任务。

如果需要,它有一个依赖关系管理的DAG(有向无环图),可选PriorityQueue(我不知道是否包括它是不是浪费),以及主工作窃取 chaselev dequeue。

该PQ使用信号量(我没有编写它,感谢moodycamel ——这是他的一系列阻塞并发队列)进行阻塞。

主工作窃取队列没有阻塞或锁定。

DAG使用无锁的链表,也使用arena分配内存。

MPSCqueue(多生产者单消费者队列)也是可用的,可以让多个线程生产或推入它,但只有一个线程可以弹出。

你可以将任务延迟到主线程中使用主线程队列。

我不知道README文档覆盖了很多内容。

我在学习时不知道有fiber,但它在我使用它的2D模拟中表现得很高效和快。