多线程:
进程:就是正在运行的程序;
进程是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源
意义:提高cpu的使用率(cpu做着程序间的高效切换让我们觉得程序在同时进行)
什么是线程呢?
在一个进程内又可以执行多个任务。而这每一个任务就可以看出是一个线程。
线程是程序的执行单元,执行路径。是程序使用cpu的最基本单位
多线程Thread的意义:
不是为了提高程序的执行速度,其实是为了提高应用程序的使用率。
程序的执行其实都是在抢占cpu的资源,cpu的执行权
多个进程实在抢这个资源,而其中的某一个进程的执行路径(线程)比较多,就会有更高的几率抢到cpu的执行权。
线程的执行有随机性。
并行:逻辑上同时发生,指在某一个时间内同时运行多个程序。
并发:物理上同时发生,指在某一个时间点同时运行多个程序。
java程序运行的原理:
由java命令启动jvm,相当于启动了一个进程。接着由该进程创建了一个主线程去调用main方法。
JVM虚拟机的启动时单线程还是多线程?
多线程的:因为垃圾回收线程也要先启动的,否则很容易出现内存溢出,现在的垃圾回收线程再加上前边的主线程,最低启动了两个线程,所以是多线程的。
有两种方式来实现多线程程序
方式1:继承Thread类