进程:–正在运行的程序,是系统进行资源分配和调用的独立单位。—每一个进程都有它自己的内存空间和系统资源。–可以提高CPU的使用率。
线程:—是进程中的单个顺序控制流,是一条执行路径。—一个进程如果只有一条执行路径,则称为单线程程序。—一个进程如果有多条执行路径,则称为多线程程序。
多线程的存在,不是提高程序的执行速率,而是为了提高应用程序的使用率。
程序的执行其实都是在抢CPU的资源,CPU的执行权
多个进程是在抢这个资源,而其中的某一个进程如果执行路径比较多,就会有更高的几率抢到cpu的执行权。
线程的执行有随机性。
并行:逻辑上同时发生,指在某一个时间段内同时运行多个程序。
并发:物理上同时发生,指在某一个时间点同时运行多个程序。
java程序的运行原理:
由java命令启动jvm,jvm启动就相当于一个进程,
接着有该进程创建了一个主线程去调用main方法。
jvm虚拟机的启动是多线程,因为垃圾回收线程也是要启动的,否则很容易出现内存溢出。
由于线程是依赖进程而存在的,所以我们应该先创建一个进程出来
而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程
java是不能直接调用系统功能的,所以,我们没办法直接实现多线程程序。但是,java可以去调用c/c++写好的程序来实现多线程程序。
由c/c++去调用系统功能创建进程,然后由java去调用这样的东西。
然后提供一些类供我们使用,我们就可以实现多线程程序了。
- 那么Java提供的类是什么呢?
Thread 通过查看API,有两种方式实现多线程程序。
方式1:继承Thread 类
步骤:A:自定义类MyThread继承Thread类。
B:MyThread类里面重写run()?
C:创建对象
D:启动线程