是否有C的任务库?我在谈论并行任务库,因为它存在于C#或Java中。换句话说,对于Linux,我需要pthread
的抽象层。感谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
除了Win32之外,最广泛使用的并行编程原语可能是pthreads提供的原语。
它们非常低级,但包含编写高效阻塞队列所需的一切,因此创建了一个执行异步任务队列的工作线程池。
还有一个Win32 implementation,因此您可以在Windows和POSIX系统上使用相同的代码库。
答案 2 :(得分:1)
TPL (任务,工作窃取计划程序,......)中的许多概念都受到麻省理工学院一个名为Cilk的非常成功的项目的启发。他们的高级框架( Cilk Plus )被英特尔收购并集成到英特尔Parallel Building Block。您仍然可以使用 Cilk 作为open source project而不使用某些高级功能。好消息是Intel is releasing Cilk Plus as open source in GCC。
你应该尝试 Cilk ,因为它为C添加了另一层抽象,这使得表达并行算法变得容易,但它足够接近C以确保良好的性能。
答案 3 :(得分:0)
ANSI C不支持线程,但有一些选项: Threaded C programs in minGW 问候。
答案 4 :(得分:0)
我一直想看看libdispatch。是的,它是为OS X和块而构建的,但它们也有功能接口。没有时间去看它,但不确定它是否满足你的所有需求。
答案 5 :(得分:0)
有一个名为Wool的学术项目,它在C中实现了工作窃取调度程序(在C预处理器AFAIK的帮助下)。可能值得一看,虽然它似乎没有积极发展。