首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

利用jrtplib库编写的客户端多线程监听端口,怎么减少cpu消耗

2012-02-14 
利用jrtplib库编写的客户端多线程监听端口,如何减少cpu消耗?我用利用jrtplib写了个客户端监听本地两个端口

利用jrtplib库编写的客户端多线程监听端口,如何减少cpu消耗?
我用利用jrtplib写了个客户端监听本地两个端口(音频和视频端口)rtp数据的程序。开两个线程分别监听,由于每个线程里是死循环监听,所以cpu消耗会比较大,大约70~80%。我初步认为应该不是开了两个线程的原因,因为开一个线程和两个线程的cpu消耗差不多,应该是死循环的原因。不知道有什么降低cpu消耗的办法。
每个线程中利用如下代码监听端口的rtp数据:

C/C++ code
do {    // 接受RTP数据    status = sess.PollData();    // 检索RTP数据源    if (sess.GotoFirstSourceWithData()) {      do {        RTPPacket* packet;        // 获取RTP数据报        while ((packet = sess.GetNextPacket()) != NULL) {          printf("Got packet !\\n");          // 删除RTP数据报          delete packet;        }      } while (sess.GotoNextSourceWithData());    }  } while(1);  return 0;} 

求教各位大侠出谋划策!

[解决办法]
首先最好使用一个线程监听,这样保证音视频同步更好
使用两个线程不会造成CPU过高,请查找其他原因。
[解决办法]
一般20ms读一次就可以。

热点排行