【发布时间】:2010-12-10 06:36:07
【问题描述】:
我考虑使用 POSIX 来实现,尽管这个问题更多的是关于架构。
我从一个有几个主要工作要做的更新循环开始。我可以将这些作业分为四个或五个具有共同内存访问要求的主要任务。我的想法是将这些作业分解为它们自己的线程,并让它们完成一个“更新”周期并休眠到下一帧。
但是如何同步呢?如果我在每个循环开始时分离 4 或 5 个线程,让它们运行一次,死掉,然后在每次通过时分离另外 4-5 个线程?听起来很贵。
创建这些线程一次听起来更合理,然后让它们进入睡眠状态,直到同步调用将其唤醒。
这是明智的做法吗?我愿意接受从想法到任何形式的实施的回应。
编辑:根据到目前为止的答案,我想补充一下:
- 需要并发
- 这些工作线程旨在在非常短的时间内运行
- 每个线程所做的工作总是相同的
- 我正在考虑 4-5 个线程,20 个是硬限制。
【问题讨论】:
标签: c multithreading