1. 前言

在现代OS系统中,线程是调度的最小单位,而进程是资源(比如:内存)分配的最小单位。

2. java中并发和并行的概念

  • 并行:指两个或多个事件在同一时刻点发生。
  • 并发:指两个或多个事件在同一时间段内发生。

并发,就好似我们在单核系统上玩游戏听歌一样,每一个时刻只有一个程序执行,但是由于CPU中将时间切片(时间片概念),计算机所有的程序交替在每一个时间片中进行调度

3. 线程数,CPU个数,核数之间的关系

  • CPU个数:指物理上的,也是硬件上的核心数。
  • 核数:逻辑上的,简单理解逻辑上模拟的核心数。
  • 并行线程数:指的是某一时刻,能并行执行的线程数,理论上=cpu个数*核数。

4. IO阻塞时,线程会释放CPU吗

当线程处于IO操作时,线程是阻塞的,线程由运行状态切换到等待状态。此时CPU会做上下文切换,以便处理其他程序;当IO操作完成后,cpu会收到一个来自硬盘的中断信号,CPU正在执行的线程因此会被打断,回到ready队列。而先前因I/O而waiting的线程随着I/O的完成也再次回到就绪队列,此时CPU可能会选择他执行。

5. JAVA线程可以同时在多个核上运行吗

操作系统是基于线程调度的,在同一时刻,JAVA进程中不同的线程可能会在不同的核上并行运行。

Copyright © 神都花已开 2021 all right reserved,powered by Gitbook修订时间: 2021-11-01 15:05:12

results matching ""

    No results matching ""