代码之家  ›  专栏  ›  技术社区  ›  KyleL

SetThreadAffinityMask设置的处理器关联是否也适用于子线程?

  •  0
  • KyleL  · 技术社区  · 6 年前

    我有一个应用程序,它使用了许多线程,其中一个线程比其他线程对时间要求更高。我已经尝试过使用priority,但发现Windows并不总是按照我希望的程度遵守优先级,有时允许优先级线程长时间(50毫秒以上)阻塞我的关键线程。为了解决这个问题,我正在考虑为每个线程设置一个处理器亲缘关系,以限制非关键线程,这样它们就不能使用一些内核(比如内核#1和#2),而关键线程将始终有这些内核(#1和#2)可用。

    我的问题是,如果我通过 SetThreadAffinityMask() ,由该初始线程创建的后续线程是否继承关联掩码?还是每次在系统中生成线程时都需要手动设置关联?

    0 回复  |  直到 6 年前
        1
  •  0
  •   KyleL    6 年前

    我可以确认,在Windows 10上使用带VS2015的std::thread创建线程时,线程关联没有被继承。