不一定。

简单点说吧,处理器核数(包含超线程数)是一种执行资源,资源数量就是核数个数。应用程序的线程数就是服务请求数。而操作系统的作用是如果用有限的资源来服务好应用程序的请求,这就是进程调度的功能。

一般情况下,服务请求线程会“相对公平”地分配到核上运行,并且在时间片上轮流使用的,即并发执行(不一定是并行执行)。

比如系统有4个核,如果:

1、只有3个线程,那就分配到3个核上运行

2、只有8个线程,那就每个核分配两个线程运行

3、只有10个线程,那就有些核跑3个线程,有些核跑2个线程