[GNU Make不管使用什么--jobs都只使用4个线程

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

无论我传递什么--jobs参数,我总是得到4个线程。

make --jobs=1 target期间,当我只希望有一个线程时,可以在以make[1]:make[2]:make[3]:make[4]:开头的标准输出行上看到。

如果使用make --jobs=100 target,结果相同,我得到4个线程而不是100个线程。

我不确定这是否相关,但是我在docker容器中运行make,并且docker有7个可用的localhost内核可供使用。

>docker info
Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 7

并且在Alpine Linux docker容器内

>make --version
GNU Make 4.2.1
Built for x86_64-alpine-linux-musl

>grep -c ^processor /proc/cpuinfo
7

确认该容器获得7个核心。

是否有可以运行的内容可以帮助我缩小为什么make表现为这种方式?

docker makefile gnu-make
1个回答
0
投票

我认为有些混乱:make之后的数字不是线程号。 Make实际上不是多线程的,它是单线程的。

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