获取子线程的PID [关闭]

问题描述 投票:1回答:1

我有一个像tcpdump一样的ac程序,并使用POSIX aio从NIC捕获数据包并将它们写入文件,并且在执行期间由OS划分为多个线程,但所有线程都在同一个核心上,导致核心使用率增加到100导致数据包丢失的百分比。

为了减少核心负载和数据包丢失的预防,我一直在决定将一些线程绑定到另一个核心。当我使用htop linux实用程序来显示线程pid时,它们是不同的但我希望能够在我的程序中识别操作系统创建的线程以及哪个线程是哪个PID与其中一些线程相关。

注意:我在pid for new thread上找到了一些信息,但没有帮助。

我受够了!!!我接着跟进,以便能够识别操作系统自动创建的程序线程,并将其中的一些与特定核心相关联。

首先,我从/ proc /(程序PID)/任务路径的子目录中提取了所有程序线程id(tids)。

在第二步,我使用sched_setaffinity()函数将特定线程绑定到另一个核心。

c linux multithreading pid
1个回答
0
投票

如何使用pid_t gettid(void);pthread_t pthread_self(void)

结帐https://www.systutorials.com/docs/linux/man/2-gettid/

#include <sys/types.h>
pid_t gettid(void);

或者使用pthread:how to get thread id of a pthread in linux c program?

© www.soinside.com 2019 - 2024. All rights reserved.