lanmanck 发表于 2013-06-23 11:10

如何控制线程的执行速率?

各位:

当前我的程序线程里通过FIFO进行同步,但是呢,我不希望线程跑那么快,比如视频编码的时候,我希望降低帧率,本来编码线程满负荷可以跑25FPS,但根据环境,只要让他编出10FPS的视屏就可以了。
那么实际情况应该如何做?我唯一想到的就是sleep了,还有其他办法降低线程执行速率么?

float001 发表于 2013-06-26 12:20

要不就用信号量来控制,线程暂停直到主进程发送信号才继续执行

timespace 发表于 2013-06-26 14:56

貌似精度要求不高,既线程安全又跨平台的就是select(0, NULL, NULL, NULL, timeout)

流氓无产者 发表于 2013-06-27 09:32

lanmanck 发表于 2013-06-23 11:10 static/image/common/back.gif
各位:

当前我的程序线程里通过FIFO进行同步,但是呢,我不希望线程跑那么快,比如视频编码的时候,我希 ...
控制送编的速率啊,你控制输出,那么就是延迟效果,还可能fifo爆掉

卖萌犯法 发表于 2013-06-28 11:16

线程执行速率由CPU决定(如果没有阻塞或sleep的话),我不知道你的CPU是否可降速
如果不能控制CPU 执行速率,则只能通过定时器来解决
页: [1]
查看完整版本: 如何控制线程的执行速率?