请问操作linux线程和tomcat线程的关系?

用vmware装的ubuntuserver,分配单核,用springboot写了个简单的应用,写了一个接口什么也不干,纯粹为了测试tomcat并发的。tomcat配置 maxthread核minthread都是1个线程,用ab测试时,结果符合我的猜测,就是服务端就一个线程,客户的开再多线程也要等服务器这个唯一的线程慢慢处理,比如接口sleep 1ms的话,测试结果接近1千请求每秒;sleep 10ms ,结果接近100。但是问题是,tomcat配置为默认(初始化10线程最大200线程)时,ab 测试 -c参数设置很大时,还是用接口sleep 几ms来模拟耗时方便计算一点,结果出乎意料的达到几千甚至可以上万。
请问:操作系统的线程和java的 Thread是什么关系,系统单核tomcat也可以开很多线程吗

1、操作系统的线程和java的 Thread是什么关系?
java JVM会根据不同的操作系统选择不同的多线程源语,一对一映射。
2、系统单核tomcat也可以开很多线程吗?
不能开很多,一般情况下默认都是NIO,如果服务器的CPU的核数有限,线程数太多会导致线程在CPU上来回切换,耗费大量的切换开销。

java程序是以进程的方式在系统中跑的,CPU会按时分的方式执行各个进程的程序,当CPU分配给java进程时,java程序内部可以拆分成多个线程去使用CPU,所以单核也可以多线程的