将功能分配给CPU

vad*_*vad 2 c linux cpu linux-kernel

在Linux内核中,long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg)用于分配在特定CPU核心上运行的函数.是否有任何等效的用户空间功能?

nos*_*nos 5

不,没有,内核提供的执行上下文与用户空间的执行上下文完全不同.

你能做的是.

  1. pthread_create()一个新线程.

  2. 使用pthread_setaffinity_np()将该线程固定到特定的CPU

如果你需要一个类似的API内核有什么,你需要创建工作线程,每个CPU有一个小水池,利用上述方法,并建立必要的水暖代码能够请求功能上的一个被称为那些工人线程.