学习时关于Java线程的疑问?

今天看学习视频时关于java线程有疑惑想请教一下大家:
1.对于多核CPU,如果是多进程并行,那对每个进程来说,其中的线程是不是只能并发,不能同时并行。
一个核心只能处理一个任务,多线程并行和多进程并行(不是并发)是不是不能同时存在。
2.优先级高的线程抢占的时间片多,这里的时间片多,指的是抢占到时间片的概率高,还是每次抢占到的时间片的时间长,该线程运行的时间长。
请指点一下,谢谢。

1.线程是cpu执行的最小单位,而进程是线程的一个打包,每个进程至少由一个线程组成
没有人说过cpu一次只能运行同一个进程里的一个线程啊,可以一个进程里的多个线程同时执行的
而且即使是单核cpu,多线程和单线程效果也完全不一样
如果你的进程只有一个线程,那你一旦执行了sleep,整个进程都被阻塞了;而如果你开2个线程,cpu就可以分时复用,把sleep的线程丢到后台去,先执行其他的线程
2.当cpu不繁忙的时候,它就会按顺序调用栈里的线程来执行;
当cpu变得繁忙了,它会优先调用优先级高的那些线程,忽略优先级低的线程
也就是概率变高了
这样在每次抢占时长不变的情况下,总时长是变长了的

第一个问题,你理解的有误,.是并发还是并行其实与进程无关,而与核数有关,由于并发涉及到时间片轮转,上下文切换,而一个cpu一次只能执行一个命令,因此,每个时刻被执行的就只有一个线程,并发是为了提高cpu的利用效率,使得多线程之间呈现出在一段时间内 “并行”的样子。因此,对于多核多线程是存在并行的。至于多线程和多进程是不是可以同时存在,这个,这样说,进程其实就是线程的集合。就像 一头狼是狼,一群狼是狼群,但他们仍然都是狼。
第二个问题,优先级高的线程抢占的时间片多,这里的多是指抢到的概率高,当一个线程时间片用完之后他将进入就绪态,再次竞争获取时间片,由谁获得时间片则要看具体的调度算法,如果是按照优先级调度,那么显而易见优先级高的获得时间片的概率就高,获得的次数就多。