Boost.Fibers.Numa.Topology的使用示例程序
Boost.Fibers是一个基于协程的C++库,提供了高效的多线程任务调度和同步机制。Boost.Fibers.Numa.Topology是其中的一部分,它提供了与NUMA(非统一内存访问)架构相关的拓扑信息和工具函数。在本篇文章中,我将分享一个使用Boost.Fibers.Numa.Topology的测试程序,以帮助读者更好地理解其用法及作用。
#include <iostream>
#include <boost/fiber/all.hpp>
#include <boost/fiber/numa/topology.hpp>
void do_work() {
// 获取当前线程所在的CPU编号
int cpu_id = boost::fibers::numa::this_thread_cpu();
std::cout << "Thread on CPU " << cpu_id << std::endl;
}
int main() {
// 打印整个NUMA系统的信息
std::cout << "NUMA system info:\n" << boost::fibers::numa::topology() << std::endl;
// 创建两个协程
boost::fibers::fiber f1(do_