我将编写一个多线程共享内存消息传递系统,用于进程之间的超大容量消息传递。消息将来自网络服务器的工作线程。我想利用同一 CPU 共享上的内核的 CPU 缓存位置。因此,当我在这个 IPC 系统的接收端唤醒一个工作线程时,我会唤醒同一个 CPU 上的一个线程。
我需要Linux(最好是一般的POSIX)和windows API调用和我需要做的位掩码来提取信息,这些信息将让我使用以下结构从所述线程的上下文中对正在执行的线程ID进行分类:
struct thread_core_id
{
uint16_t cpu_Id;
uint16_t core_Id;
};
两个平台的功能将不胜感激。我希望这可以在没有系统调用的情况下完成——即上下文切换。
- 编辑 -
我目前专注于 x86,但其他架构也会很有用。