当前位置: 首页 > 面试题库 >

将线程绑定到处理器

郑宇
2023-03-14
问题内容

当我运行多线程代码时,系统(linux)有时会将线程从一个处理器移动到另一个处理器。由于我拥有与处理器一样多的线程,因此它没有充分的理由使缓存无效,并且使我的跟踪活动混乱。

您知道如何将线程绑定到处理器,为什么系统会这样做?


问题答案:

使用sched_setaffinity(这是特定于Linux的)。

为什么调度程序会在不同处理器之间切换线程?好吧,假设您的线程最后一次在处理器1上运行,并且当前正在等待再次安排执行时间。同时,处理器1当前正在运行其他线程,但是处理器2是空闲的。在这种情况下,调度程序将线程切换到处理器2是合理的。但是,复杂的调度程序将尽力避免不必要地在处理器之间“反弹”线程。



 类似资料:
  • 我有一个带有REST方法的控制器类,可以抛出各种异常。我已经决定在一个单独的类中处理这些异常,在我的处理程序方法中使用@ControlllerAdwn和@ExceptionHandler。但是,我有一个问题,我的REST方法使用另一个库的注释。此库捕获REST方法引发的异常。现在,我正在全局处理异常,而不是直接通过REST方法中的试/捕获,我的异常总是被其他库捕获,而不是被我自己的处理程序方法捕获

  • 问题内容: 我有一个React组件,可以在其中遍历列表并创建行。每行中都有一个删除按钮。单击删除按钮后,我想将引用传递给该行中的元素。 因此,为了在点击处理程序中保留this值;我对map()和click-handler都使用bind。 这是将参数传递给React中的处理程序的正确方法还是有更好的方法? 问题答案: 我现在还很陌生,但我想我可以把它扔在这里以提供帮助。 我认为您需要更改此行, 至

  • 问题内容: 解释为什么这不是重复的:我的代码已经在工作,我已作为注释包含在内。问题是为什么将上下文包含在单击处理程序函数中时上下文会发生变化。 我正在React中尝试一个计算器项目。目的是将onclick处理程序附加到数字按钮,以便数字显示在计算器显示区域上。如果将处理程序直接编写为render方法,则它可以正常工作,但是,如果我尝试从ComponentDidMount尝试,则会收到错误消息。如何

  • 我有一个带有四个mic卡(mic0-mic3)的服务器,它工作得很好。如何将并行作业(mic\U app)绑定到mic0,其他并行作业无法在mic0中运行。如何检测为并行作业(mic\U应用程序)运行的mic0。

  • 我正在尝试使用多个处理器类在处理器步骤中处理记录。这些类可以并行工作。目前我已经编写了一个多线程步骤,其中我 设置处理器类的输入和输出行 提交给遗嘱执行人服务 获取所有未来对象并收集最终输出

  • 也许是基于代码创建的队列,它由其他现有队列支持?