我在 linux 上使用专有的 C++ 库,通过 gcc 编译,它使用 pthreads(我必须在 gcc 上使用 -lpthreads 标志)。我有一个包装器,我知道该库正在使用多个线程。
该库动态使用多个线程 - 当我调用它时,我可以看到 20 到 1 个线程之间的任何地方。但我不想使用任务集。(我有其他进程正在运行,我希望系统管理核心)。
有没有办法强制我的可执行文件使用单线程?在编译或运行时。谢谢。
编辑:我可以使用任务集运行可执行文件,然后 cat /proc//status 给我:
状态:R(运行) Tgid:1623 Pid:1623 PPid:31002 TracerPid:0 Uid:500 500 500 500 Gid:100 100 100 100 Utrace:0 FDSize:256 组:100 VmPeak:346528 kB VmSize:345956 kB kB VmHWM: 199816 kB VmRSS: 188388 kB VmData: 192120 kB VmStk: 128 kB VmExe: 656 kB VmLib: 12444 kB VmPTE: 432 kB VmSwap: 0 kB Threads: 1 SigQ: 2/62004 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000000004 SigCgt: 0000000180000000 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff Cpus_allowed: 02 Cpus_allowed_list: 1 Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 Mems_allowed_list:0 自愿性_ctxt_switches:3460 非自愿性_ctxt_switches:24907
因此,显然,它可以运行单线程。