我的程序有一个后台线程,用于填充和交换双缓冲区实现的后台缓冲区。 主线程使用前台缓冲区发送数据。问题是当我运行程序时,主线程平均得到更多的处理时间。我想要相反的行为,因为填充后台缓冲区是一个比处理数据并将数据发送到客户端更耗时的过程。
如何在 Linux 上使用 C POSIX pthreads 实现这一点?
最佳答案
根据我的经验,如果在没有优先级的情况下您的主线程获得更多 CPU,那么这意味着以下两种情况之一:
它实际上需要额外的时间,与您的预期相反,或者
后台线程正在饿死,可能是由于锁争用
更改优先级不会解决任何一个问题。
关于C linux pthread线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5374902/