![如果 Windows 上的 Affinity 仅在 1 个线程上设置,是否可以消除线程不安全软件的问题?](https://linux22.com/image/1529995/%E5%A6%82%E6%9E%9C%20Windows%20%E4%B8%8A%E7%9A%84%20Affinity%20%E4%BB%85%E5%9C%A8%201%20%E4%B8%AA%E7%BA%BF%E7%A8%8B%E4%B8%8A%E8%AE%BE%E7%BD%AE%EF%BC%8C%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E6%B6%88%E9%99%A4%E7%BA%BF%E7%A8%8B%E4%B8%8D%E5%AE%89%E5%85%A8%E8%BD%AF%E4%BB%B6%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%9F.png)
假设我有一个第三方软件可执行文件,我无法以任何方式编辑或更改它,也无法正确调试。我怀疑它存在多线程问题,因为它的线程不安全部分会导致应用程序分段错误。将 Windows 中可执行文件的亲和性设置为单线程是否只能消除此类问题,还是只能减轻这些问题,或者由于其他原因什么也不做?
答案1
它会降低问题发生的概率,但由于同一进程的两个线程不会按照特定顺序进行安排,因此无法提供“经过验证的”安全性。
虽然调度程序当然是确定性的,但相关进程不会是唯一正在运行的进程。因此,您无法确定会发生什么。简单的鼠标移动可能会导致安排更多工作。
但是,您只是从猜测开始。请联系制造商,提供有关事故的详细信息,也许他们可以为您提供帮助。