无论我传递什么--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表现为这种方式?
我认为有些混乱:make
之后的数字不是线程号。 Make实际上不是多线程的,它是单线程的。