linux 多线程cpu运行时间

linux 多线程cpu运行时间,第1张

1、程序(linux环境下)运行自己写的线程之后,程序卡顿

2、查看程序(linux环境下)运行资源消耗 top命令,CPU占用率达到了98%

问题分析

1、反复查看线程中程序执行步骤,并没有高耗CPU的 *** 作

2、查看程序优化的百度经验,优化一些算法,但也不能CPU占用率达到98%

3、最后多次查看线程概念、原理得出结论:

    线程就是一个死循环,线程要有跳出语句,要预留出其他程序的运行的时间

解决:

while(1)中加入sleep(),防止一直占用CPU

---恢复内容结束---

时间片,简单来说就是CPU分配给各个程序的时间,使各个程序从表面上看是同时进行的,而不会造成CPU资源浪费。

时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表格和队列 等。

假如进程切换(process switch) - 有时称为上下文切换(context switch),需要5毫秒,再假设时间片设为20毫秒,则在做完20毫秒有用的工作之后,CPU将花费5毫秒来进行进程切换。CPU时间的20%被浪费 在了管理开销上。

明确回答,no

不可能改某个进程的时间片长度,系统调度的时间片是既定的。具体在代码的什么地方,还没研究过,但是Linux的实现原理是这样的

想要一个进程获得更多的运行时间只有提高它的优先级。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8580339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存