欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-15 23:20:15
Java多线程和多进程的对比1、多进程(1)多进程的优点(2)多进程的缺点2、多线程(1)多线程的优点(2)多线程的缺点1、多进程当前的操作系统都是多任务OS。每个独立执行的任务就是一个进程。操作系统OS将时间划分为多个时间片(时间很短),每个时间片内将CPU分配给某一个任务,时间片结束,CPU将自动回收,再分配给另外任务。从外部看,所有任务是同时在执行。但是在CPU上,任务是按照串行依次运行(单核CPU)。如果是多核,多个进程任务可以并行。但是单个核上,多进程只能串行执行。串行程序,是指程序只能...

1、多进程

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

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

(1)多进程的优点

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

(2)多进程的缺点

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

2、多线程

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

(1)多线程的优点

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

(2)多线程的缺点

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

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

本文地址:https://blog.csdn.net/yh991314/article/details/107343558