1.线程:是依赖于进程的执行绪(执行路径/控制单元),是程序使用CPU的基本单位。 2.进程:当前正在执行的程序,代表一个应用程序在内存中的执行区域。 3.多进程:同一时间段内执行多个任务。同一时刻只能执行一个任务。如Windows为代表的操作系统。 ----多进程并不提高某个程序的执行速度,仅仅是提高了CPU的使用率。真正的多进程执行是指多核同时计算。 4.线程分类: ---单线程:一个进程中,只有一个线程执行。 ---多线程:同一个进程中,多个线程执行。这多个线程共享该进程资源(堆内存与方法区),单栈内存独立,即每一个线程占用一个栈。 5.线程两种调度模型: ---分时调度模型:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间片。 ---抢占式调度模型:优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个。(线程随机性) ---Java使用的为抢占调度模型。 6.线程并行与线程并发 ---线程并行:正常的多线程执行就是线程并行。即逻辑上同一时间同时运行。 ---线程并发:由于线程抢占而不应出现的某一时刻的线程及相关数据状态。如并发修改异常的产生。 8.JVM的启动支持多线程: ---JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。 ---Java命令会启动java虚拟机,启动JVM,等于启动了一个应用程序,也就是启动了一个进程。该进程会自动启动一个 “主线程”,然后主线程去调用某个类的 main 方法。所以 main方法运行在主线程中。
|