得看线程是什么线程,除此之外还要看操作系统的调度策略。内核级线程理论上是可以同时在两个核心上运行的,但是现实情况是线程数远远大于CPU数量或者核心数,所以就是多个线程抢占系统的CPU了。
实际上有些操作系统在内部并不分进程和线程,调度方式是一致的。比如Linux,共享内存的就是线程,不共享内存的就是进程,然后把包装好的创建函数暴露给POSIX API。
使用top命令,具体用法是 top -H,加上这个选项,top的每一行就不是显示一个进程,而是一个线程。
使用ps命令,具体用法是 ps -xH,这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
使用ps命令,具体用法是 ps -mq PID,这样可以看到指定的进程产生的线程数目。
更进一步,其实一些系统监控工具,在本质上也是读取的系统产生的文件罢了。