Java多线程和多进程的优缺点

1、多进程

当前的操作系统都是多任务OS。每个独立执行的任务就是一个进程。
操作系统OS将时间划分为多个时间片(时间很短),每个时间片内将CPU分配给某一个任务,时间片结束,CPU将自动回收,再分配给另外任务。从外部看,所有任务是同时在执行。但是在CPU上,任务是按照串行依次运行(单核CPU)。如果是多核,多个进程任务可以并行。但是单个核上,多进程只能串行执行。

  • 串行程序,是指程序只能在单核上运行,无法利用多个CPU;
  • 并行程序,是指程序可以利用多个计算核运行,加快计算速度。

(1)多进程的优点

  • 可以同时运行多个任务
  • 程序因IO堵塞时,可以释放CPU,让CPU为其他程序服务,则CPU的利用率提高
  • 当系统有多个CPU时(不方便散热),可以为多个程序同时服务

(2)多进程的缺点

  • 太笨重,不好管理
  • 太笨重,不好切换

2、多线程

一个程序可以包括多个子任务,可串/并行,每个子任务可以称为一个线程。
如果一个子任务阻塞,程序可以将CPU调度另外一个子任务进行工作。这样CPU还是保留在本程序中,而不是被调度到别的程序(进程)去。这样,提高本程序所获得CPU时间和利用率。

(1)多线程的优点

  • 多线程共享数据
  • 多线程通讯更高效
  • 线程更轻量级,更容易切换
  • 多个线程更容易管理

(2)多线程的缺点

  • 线程之间的同步和加锁控制比较麻烦
  • 一个线程的崩溃可能影响到整个程序的稳定性

下一篇:Java多线程的两种创建方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值