免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1750 | 回复: 0
打印 上一主题 下一主题

[内核入门] 线程优先级(not进程)? [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-08-19 14:57 |只看该作者 |倒序浏览
sched_setscheduler()可以设置指定进程的调度策略和优先级:
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4241877

疑问:
1. sched_setscheduler()的功能,就是进入内核态,通过pid找到对应的task_struct结构,并修改吧?
2. 线程也有自己独立的task_struct结构吧?那么按道理,实现类似“set_thread_scheduler(pid, tid, sched)”也是可以的吧?只是要通过(pid,tid)的组合去找对应的task_struct结构。

请问目前有这样的函数吗?如果有这样的函数,还有可以获取某个进程所有线程id的函数吗?
比如,进程pidA有两个线程tid1、tid2。进程B先通过get_tids(pidA)获得tid1、tid2,然后通过“set_thread_scheduler()”分别去设置这两个线程的调度策略和优先级。

相关:
int setpriority(int which, int who, int prio);  // 这个函数和sched_setscheduler()在用途方面,和sched_setscheduler()有什么区别和联系不?
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);  // pthread_attr_t结构中有个跟调度策略相关的成员,但不能在第三方进程使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP