作为一个小白,一直搞不清楚java中的多线程.于是先来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系,
若有不足和错误之处,恳请各位大佬批评指正.
我们以酷睿四核八线程的i7 7700和六核六线程的i5 8400 为例来举例:
一般来说一个核心对应一个线程
四核八线程的i7 7700,我们认为是一个CPU集成了4个核心,Intel通过超线程技术来实现一个核心对应2个线程,
线程数:是同一时刻设备能并行执行的程序个数
这里说的线程是CPU级别的.
然后在操作系统级别是CPU将线程给操作系统控制,
操作系统会分给每个进程不同的调度资源,并且按需要切换
然后java程序其实是一个进程,java的线程在jvm里分配,操作一同只用分给jvm一个进程的资源就可以了