是否可以在Android中使用sched_setaffinity设置亲和力?
是否可以在使用 Android NDK 编译的本机 C 代码中设置 CPU 关联性?由于系统使用 Linux 内核,应该可以使用 sched_setaffinity/sched_getaffinity 函数,但是当我使用 NDK 编译时,我收到错误,抱怨 cpu_set_t 类型未知(用作函数的参数) 。还有其他方法可以实现此目的吗?当我使用 CodeSourcerys ARM 编译器 (arm-none-linux-gnueabi-gcc) 进行编译时,这似乎不是问题,因此系统显然支持所需的系统调用。
Is it possible to set CPU affinity in native C code compiled with the Android NDK? Since the system is using a Linux kernel, it should be possible to use the sched_setaffinity/sched_getaffinity functions, but when I compile with the NDK, I get errors complaining that the cpu_set_t type is unknown (which is used as an argument to the functions). Is there any other way to accomplish this? When I compile with CodeSourcerys ARM compiler (arm-none-linux-gnueabi-gcc) this does not seem to be a problem, so the system obviously supports the required syscalls.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下代码适用于 NDK r5 或更高版本:
The following code works well with NDK r5 or newer:
对于
cpu_set_t
,我能够使用 Android NDK 的-D_GNU_SOURCE=1
选项进行编译。For
cpu_set_t
, I was able to compile with-D_GNU_SOURCE=1
option for Android NDK.