首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求调度在一起的多个Linux线程的可能性(同时)

请求调度在一起的多个Linux线程的可能性(同时)
EN

Software Engineering用户
提问于 2016-07-19 23:43:21
回答 1查看 310关注 0票数 1

我希望能够请求Linux在同一时间安排两个或多个线程。我的意思是,今天,当我的多线程程序被执行时,我知道在最坏的情况下,每次只有一个线程在物理上被执行(调度)。现在我想告诉Linux:下面是线程Ids的列表,请尝试将它们安排在同一时间,可能使用核心亲缘关系。有这样的能力存在吗,还是有人做过这方面的工作?

目标是让一个或多个任务线程(专用于任务)与主线程同时运行。主线程会给它们很短的任务来执行,比如存储到或搜索一个散列或数组。同时,主线程将继续执行,直到达到对任务结果之一的依赖。如果任务实际上是并行执行的,则依赖项将不会停止主线程,程序将运行得更快。

按照通常的调度方案,任务可以调度得比同步点晚得多,甚至可能比单线程版本运行得慢。

谢谢

EN

回答 1

Software Engineering用户

发布于 2016-07-20 01:38:25

实际上,在最坏的情况下,您的线程可能没有一个正在执行。Linux有很多自己的线程,也需要调度。您总是可以请求运行多个线程,但是只有为它们分配高优先级才能希望它们同时运行。没有保证。

将核心关联分配给线程是个坏主意。这可能会阻塞您的线程,如果另一个线程已经在该核心上运行,并且它不会放弃。使用下一个可用的核心通常更快。

您可能希望查看Linux中的“实时”系统调用,但Linux不支持“硬”实时调用。请记住,对自己的线程过于慷慨可能会阻止一些必要的Linux线程运行。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/325257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档