首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C中怎么通过优先级调度多个线程

2012-04-07 
C中如何通过优先级调度多个线程?情况是这样的:1. 在一个process中有多个线程,分布为A, B, C, D;2. 其中A和

C中如何通过优先级调度多个线程?
情况是这样的:
1. 在一个process中有多个线程,分布为A, B, C, D;
2. 其中A和B处理同样多的事情,即A做一个操作B相应的做另一个操作,但B花费时间比A长
3. C, D线程使用默认属性,不考虑

线程使用pthread,开发环境是Linux2.6

请问如何通过优先级的设定使线程B得到更多的时间,从而能够一一对应A处理操作?

[解决办法]
如果A, B的工作需要同步, 就采用同步机制。 光靠改优先级不行吧。
[解决办法]
嗯,好像是同步异步问题
[解决办法]
好像是线程间的同步互斥问题,设置一个信号量,初值为B能处理包的个数;当A发一个包,就减1,并进行判断即可,若大于0则就发包,小于0阻塞;B线程处理一个包就进行加1操作,并进行判断若大于0则继续运行,
小于等于0则唤醒阻塞的线程。
[解决办法]
这不就是同步问题吗?
收包缓冲区满, 发包线程就在该缓冲队列上睡眠。 队列一空, 就唤醒等待此队列的线程。在缓冲队列上加一
个临界区就可以了。
[解决办法]
os很多机制都可以实现
[解决办法]
我也是刚学 我知道在建立一个线程的时候 可以设置它的属性,而属性里面有优先级
[解决办法]
用加锁的。。
[解决办法]
把进程的优先级调度算法搬过来就好用了
[解决办法]
这个问题 应该这样处理吧:

这样一个缓存窗
---------------------------
| |
---------------------------
下限 上限

当接收到的达到上限时 挂起 A 线程 当到了下限时 恢复A线程
[解决办法]
如果该计算机上只有你写的程序,B不是要求实时处理的话,应该考虑降低A线程的处理频率,优先级不是用来调整这类问题的。
[解决办法]
这是同步问题...

线程优先级有什么用??

热点排行