使用sched_getcpu
以确定在其上调用线程运行的cpu。请参阅man getcpu
(系统调用)和man sched_getcpu
(库包装器)。但是,请注意其内容:
仅在调用时保证放置在cpu中的信息是最新的:除非已使用sched_setaffinity(2)修复了cpu关联性,否则内核可能随时更改cpu。(通常不会发生这种情况,因为调度程序会尝试最大程度地减少cpu之间的移动以保持高速缓存保持高速,但有可能这样做。)当cpu和node不再是当前的cpu和节点时,调用者必须准备好处理这种情况。