看看pthread_setschedparam()
幫助你平衡了線程的使用的CPU
的從pthread_setschedparam
man page,您可以更改線程優先級。
pthread_setschedparam(pthread_t thread, int policy,
const struct sched_param *param);
struct sched_param {
int sched_priority; /* Scheduling priority */
};
As can be seen, only one scheduling parameter is supported. For details of
the permitted ranges for scheduling priorities in each scheduling policy, see
sched_setscheduler(2).
此外,
文件傳輸正在採取太多的CPU週期,它自己的
如果你讀這SO post,這似乎表明,改變線程的優先級可能無法幫助。因爲文件傳輸線程消耗更多CPU週期的原因是它需要它。但在你的情況下,如果文件傳輸速度減慢,那麼你確定沒問題,因爲流式線程無法與之競爭!因此,我建議您更改優先級和剝奪一些週期的文件傳輸線程即使需要它
你爲什麼要通過文件進行通信?爲什麼不使用'pipe()'? – chrisaycock 2012-04-18 13:20:19
由於接收到的數據可能需要在稍後再次流式傳輸,這意味着新的文件傳輸。這樣,文件只傳輸一次,因爲它已經存在。 – gekod 2012-04-18 13:22:29
我們在這裏談論的數據量是多少?這是你可以存儲在內存中的東西嗎? – chrisaycock 2012-04-18 13:26:54