小编sur*_*esh的帖子

unix中的线程调度

在RR调度策略中,如果低优先级线程锁定互斥锁并由调度程序删除,因为另一个高优先级线程正在等待,将会发生什么?

它还会释放低优先级线程所持有的锁吗?

例如,考虑在RR调度策略中优先级为10,20和30的进程中运行的3个线程.

现在在给定的时间点,低优先级线程1锁定互斥锁并且仍然执行执行意味着高优先级线程弹出并且还等待线程1持有的互斥锁.现在线程2进入图片,其中还需要锁定相同的互斥锁通过线程1.

据我所知,根据调度算法,线程正在休眠或等待互斥,信号量等被删除,其他的,即使具有低优先级也被允许执行.它是否正确?如果是这样,在上面的例子中,最终高优先级线程等待完成低优先级线程,这没有任何意义.如果在所有线程的设计都像我上面说的那样,系统是如何工作的?

或者线程优先级应该设置为高优先级不依赖于低优先级的互斥量?

也有人可以解释一下如何在进程级别进行调度吗?我们如何为流程设置优先级?

unix multithreading

5
推荐指数
1
解决办法
609
查看次数

我可以在两个istream_iterator之间进行赋值操作吗?

我可以在两个istream_iterator之间进行赋值操作吗?如果是,那么行为是什么,即迭代器是否指向文件中的相同位置,即我们是否会获得两个指向文件中同一行的指针?

如果是这样,我可以递增一个迭代器,读取一些行,然后将其分配回其他迭代器,然后再次从我们之前的同一位置开始读取行吗?

基本上我想编写一个模拟for循环的程序.但这应该在解析文件时发生.

c++

1
推荐指数
1
解决办法
100
查看次数

标签 统计

c++ ×1

multithreading ×1

unix ×1