搜索
写经验 领红包

Java中进程和线程的区别(java线程和进程的区别是什么)

导语:java中进程和线程

1、什么是进程

进程就是在运行的程序

进程是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源

2、多进程有什么意义?

可以提高CPU的使用率

3、什么是线程

在同一个进程内又可以执行多个任务,而这每一个任务我就可以看出是一个线程

线程:是程序的执行单元,执行路径,是程序使用CPU的最基本单位

单线程:如果线程只有一条执行路径

多线程:如果程序有多条执行路径

4、多线程有什么意义

多线程的存在,不是提高程序的执行速度,其实是为了提高应用程序的使用率

程序的执行其实都是在抢CPU的资源,CPU的执行权

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

抢到CPU的执行权,线程的执行有随机性

5、并行和并发

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

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

6、Java程序的运行原理

由java命令启动JVM,JVM启动就相当于启动了一个进程,接着由该进程创建了一个主线程

去调用main方法

7、jvm虚拟机的启动是单线程还是多线程

多线程

原因是垃圾回收线程也要先启动,否则很容易会出现内存溢出,

现在垃圾回收线程加上前面的主线程,最低启动了两个线程,所以JVM的启动是多线程

8、实现多线程的方式:2种

方式1:继承Thread类

A:自定义类MyThread继承Thread类

B:在MyThread类中重写run()

C:创建MyThread类的对象

D:启动线程对象

问题:

为什么要重写run()方法

run()里面封装的是被线程执行的代码

启动线程对象用的是哪个方法

start()

run()和start()方法的区别

run()直接调用仅仅是普通方法

start()先启动线程,再由JVM调用run()方法

方式2:实现Runnable接口

A:自定义类MyRunnable实现Runnable接口

B:在MyRunnable类中重写run()

C:创建MyRunnable类的对象

D:创建Thread类的对象,并把C步骤的对象作为构造参数传递

为什么要有方式2

A:可以避免由于Java单继承带来的局限性

B:适合多个相同程序的代码去处理同一个资源的情况,把线程同程序的代码,数据

有效分离,较好的体现了面向对象的设计思想

9、同步的特点

前提:

多个线程

多个线程使用的是同一个锁对象

同步的好处:

同步的出现解决了多线程的安全问题

同步的弊端:

当线程相当多时,因为每个线程都会去判断同步上的锁,这是很耗费资源的,无形中会降低

程序的运行效率

如果出现了同步嵌套,就容易产生死锁问题(两个或两个以上的线程在争夺资源的过程中,发生的一种相互等待的现象)

10、线程转换图

本文内容由小蔼整理编辑!