相关疑难解决方法(0)

如何为Windows上的一个线程保留核心?

我正在研究一个非常时间敏感的应用程序,该应用程序在检测到发生了更改时轮询共享内存区域.变化很少,但我需要尽量减少从变更到行动的时间.鉴于变化的频率很低,我认为CPU缓存变冷了.有没有办法为我的轮询线程保留一个核心,以便它不必与其他线程竞争缓存或CPU?

windows multicore

4
推荐指数
2
解决办法
4084
查看次数

阻塞、挂起和睡眠有什么区别

例如,一个进程正在以阻塞模式侦听某个端口,因此如果 I/O 未准备好,该进程将被阻塞。

while (true)
{
    msg = recv(port, BLOCKING_FLAG); // blocks here
    cout<<msg<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我们也知道我们可以让一个进程休眠: sleep(1000)

我的问题是:如果这样的进程是阻塞的,我可以说该进程被挂起吗?该进程是否会从 CPU 中换出?相同的问题sleep

multithreading sleep process suspend blocking

2
推荐指数
1
解决办法
3150
查看次数

标签 统计

blocking ×1

multicore ×1

multithreading ×1

process ×1

sleep ×1

suspend ×1

windows ×1