Java多线程和多进程的对比

  • 1、多进程
    • (1)多进程的优点
    • (2)多进程的缺点
  • 2、多线程
    • (1)多线程的优点
    • (2)多线程的缺点

1、多进程

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

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

(1)多进程的优点

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

(2)多进程的缺点

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

2、多线程

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

(1)多线程的优点

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

(2)多线程的缺点

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

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

Java多线程和多进程的优缺点相关推荐

  1. 多线程与多进程的优缺点

    Java后端开发实习面经 (1)线程与进程的区别: 线程是进程划分成的更⼩的运⾏单位,⼀个进程在其执⾏的过程中可以产⽣多个线程.线程和进程最⼤的不同在于基本上各进程是独⽴的,⽽各线程则不⼀定,因为同⼀ ...

  2. java 多进程写一个文件_java高并发多线程及多进程同时写入文件研究

    测试&思考: 环境:windows 七.linux centos 6.三.java8html java多线程同时写一个文件 java高并发环境下多线程同时写入一个文件时, 经过 FileLoc ...

  3. java高并发多线程及多进程同时写入文件研究

    文章目录 测试&思考: java多线程同时写一个文件 第一种情况是:一个线程A有对文件加锁,另一个线程B没对文件加锁 在windows7环境下:(持有锁的可以写文件成功). 在linux ce ...

  4. 多线程和多进程优缺点及其适用场合

    进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位. 线程:是进程的一个执行单元,是进程内科调度实体.比进程更小的独立运行的基本单位.线程也被称为 ...

  5. Java线程之多线程与多进程(3)——Java中的多线程

    单线程 任何程序至少有一个线程,即使你没有主动地创建线程,程序从一开始执行就有一个默认的线程,被称为主线程,只有一个线程的程序称为单线程程序.如下面这一简单的代码,没有显示地创建一个线程,程序从mai ...

  6. 面试中常被问到的(17)多线程及多进程优缺点

    多进程: 优点: 进程资源相互独立,互不干扰,子程序崩溃不影响主程序的稳定性.进程比较稳定健壮 通过增加cpu核心数,可以很容易扩充性能 尽量减少线程加锁解锁的影响,极大提高性能 每一个进程可以获得本 ...

  7. java多线程编程01---------基本概念

    一. java多线程编程基本概念--------基本概念 java多线程可以说是java基础中相对较难的部分,尤其是对于小白,次一系列文章的将会对多线程编程及其原理进行介绍,希望对正在多线程中碰壁的小 ...

  8. java多线程基础概念

    大纲:java多线程知识体系` 程序`:为了完成某一功能, (用某种语言编写的一组指令的集合),是一段静态的代码块 进程:程序的一次执行过程,是正在运行的程序,有着完整的生命周期,是资源分配的基本单位 ...

  9. Java太密来福_这篇文章就是要让你入门java多线程【多线程入门】-Go语言中文社区...

    就在前几天,有位读者朋友私信宜春,说期待出一篇多线程的文章,我当时内心是小鹿乱撞啊-于是这几天茶不思饭不想,好几天深夜皆是辗转反侧,两目深凝,以至于这几天走起路来格外飘飘然,左摇右晃的,魔鬼般的步伐, ...

最新文章

  1. 美油合约收跌-37.65美元史上首次为负 交割没地存放拼命抛售
  2. 【Linux】一步一步学Linux——ldconfig命令(255)
  3. HDU - 6214 Smallest Minimum Cut(最小割最少边数)
  4. 利用nginx搭建RTMP视频点播、直播、HLS服务器
  5. 68-Flutter中极光推送的使用
  6. 最好的计划是略有闲余的计划,用于缓冲必然出现的错误与突发事件(转)
  7. 前端后台与接口的问题
  8. python 干什么工作具有明显优势-Python到底能做什么?它的优点在哪
  9. 微服务体系三维可缩放模型
  10. 企业***网的规划及组建
  11. 你想要的宏基因组-微生物组知识全在这(2020.8)
  12. C语言程序设计基础篇
  13. 计算机build是什么意思英语,build是什么意思
  14. Objective-C——initialize方法调用原理分析
  15. Essay-One Piece海贼王每集剧情介绍
  16. 实验室设计规范与标准
  17. MSDC 4.3 接口规范(22)
  18. (zhuan)富文本 Attributes 下划线、删除线等
  19. 矩阵理论| 基础:线性子空间(非平凡子空间)、空间分解、直和分解
  20. 百度贴吧头像上传无尺寸限制

热门文章

  1. FM1906段码屏驱动
  2. python高斯求和1-500
  3. 网络摄像头100万.200万.300万.400万.500万分辨率多少?
  4. PG PL SE PM都是什么意思 职责划分
  5. 1x pcie 引脚_pcie1x是什么插口
  6. shell二之条件检测与数学运算
  7. ip、子网掩码和无类域名路由述说
  8. 5.步进电机开发基本概念总结
  9. 思维导图带你走进春的世界
  10. word双引号间距大_Word 2013双引号的BUG