java 多进程 并发_JAVA并发之线程&进程

上一篇:JAVA并发之基础概念​mp.weixin.qq.com

进程和线程

进程:进程可理解为是一个正在运行的程序整体

进程是具有一定独立功能的程序,是操作系统进行资源分配的基本单位

线程:线程是操作系统进行调度的基本单位

进程 vs. 线程一个程序至少有一个进程,一个进程至少有一个线程

## 进程和线程

### 进程:进程可理解为是一个正在运行的程序整体

进程是具有一定独立功能的程序,是操作系统进行资源分配的基本单位

### 线程:线程是操作系统进行调度的基本单位

### 进程 vs. 线程一个程序至少有一个进程,一个进程至少有一个线程

2. 线程比进程划分更细,执行开销更小,并发性更高进程是一个实体,拥有独立的资源,而同一进程中的多个线程是共享进程的资源的如下图:

JVM在单进程中运行,JVM中的线程共享属于该进程的堆,所以几个线程可以同时访问堆中的某个对象,这就导致了线程不安全

线程在进程中拥有自己的Stack空间,所以一个线程调用方法以及其他局部变量是线程完全的

### 总结

进程和线程是包含关系,但是多任务既可以由多进程实现,也可以由单进程内的多线程实现,还可以混合多进程+多线程。

具体采用哪种方式,要考虑到进程和线程的特点。

和多线程相比,多进程的缺点在于:创建进程比创建线程开销大,尤其是在Windows系统上;

进程间通信比线程间通信要慢,因为线程间通信就是读写同一个变量,速度很快。

而多进程的优点在于:

多进程稳定性比多线程高,因为在多进程的情况下,一个进程崩溃不会影响其他进程,而在多线程的情况下,任何一个线程崩溃会直接导致整个进程崩溃。

Java语言内置了多线程支持:一个Java程序实际上是一个JVM进程,JVM进程用一个主线程来执行main()方法,在main()方法内部,我们又可以启动多个线程。此外,JVM还有负责垃圾回收的其他工作线程等。

因此,对于大多数Java程序来说,我们说多任务,实际上是说如何使用多线程实现多任务。

和单线程相比,多线程编程的特点在于:多线程经常需要读写共享数据,并且需要同步。例如,播放电影时,就必须由一个线程播放视频,另一个线程播放音频,两个线程需要协调运行,否则画面和声音就不同步。因此,多线程编程的复杂度高,调试更困难。

Java多线程编程的特点又在于:多线程模型是Java程序最基本的并发模型;

后续读写网络、数据库、Web开发等都依赖Java多线程模型。

因此,必须掌握Java多线程编程才能继续深入学习其他内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值