【多线程概述】

进程:

  正在运行的程序,是系统进行资源分配和调用的独立单位

  每一个进程都有它自己的内存空间和系统资源
线程:

  进程中的单个顺序控制流,是一条执行路径,是程序使用CPU的最基本单位

  一个进程如果只有一条执行路径,则称为单线程程序

  一个进程如果有多条执行路径,则称为多线程程序

多线程有什么意义?

  多线程的存在,不是提高程序的执行速度,是为了提高应用程序的使用率。程序的执行其实都是在抢CPU的资源,CPU的执行权。

  多个进程是在抢这个资源,而其中的某一个进程如果执行路径比较多,就会有更高的机率抢到CPU的执行权

  我们不敢保证哪一个线程能够在哪个时刻抢到,所以线程的执行有随即性

并行和并发:

  前者是逻辑上同时发生,指在某一个时间内同时运行多个程序

  后者是物理上同时发生,指在某一个时间点同时运行多个程序

JAVA程序运行原理:

  Java 命令会启动 java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一 个进程。

  该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 main 方法。

  所以 main 方法运行在主线程中。在此之前的所有程序都是单线程的。

run()和start()的区别:

  run():仅仅是封装被线程执行的代码,直接调用时相当于普通方法

  start():首先启动了线程,然后再由JVM 去调用该线程的run()

终身学习者
原文地址:https://www.cnblogs.com/zuixinxian/p/9542168.html