多进程和多线程
来源:互联网 发布:阿里云os手机好用吗 编辑:程序博客网 时间:2024/05/22 08:10
我们都知道进程是操作系统资源分配的最小单位,而线程是CPU调度的最小单位。
先说说多线程的好处:
(1)可以把占据时间长的任务放到后台去执行;
(2)比如当用户点击按钮触发一个事件后,可以使用界面的进度条显示处理的进度;
(3)一个进程中有多个线程的话,可能相对的加快程序的执行;
下面来对比一下多进程和多线进程在各方面的优劣:
(1)数据共享和同步方面:
进程之间的数据是分开的,因此多进程需要使用IPC进行数据共享,数据同步方面相对而言简单;
线程属于同一个进程,因此共享数据很方便,也就造成了数据同步比较困难。
(2)在内存和CPU方面:
进程占用内存大,CPU切换起来消耗比较大;
线程暂用资源少,切换快捷方便,CPU利用率相对较高。
因此如果要频繁创建销毁或者频繁切换的任务,优先使用多线程。比如说web服务器,对应一个连接会创建一个线程进行响应。
(3)在可靠性方面:
多进程之间并不互相影响,可靠性比较高;
而一个进程挂掉,全部的线程都挂掉。
相对而言多进程编程实现比较简单,调试容易,而多线程相对而言比较复杂。如果是多机的分布式,可以优先考虑使用多进程,如果仅仅是多核运算,则优先使用多线程。
另外我们认为如果两个任务关联性比较小的话,我们可以使用多进程;而如果关联性比较大,而且存在一个任务比较轻量级而且需要快速启动或者切换,我们优先率使用多线程。
0 0
- 多进程和多线程
- 多线程和多进程
- 多进程和多线程
- 多进程和多线程
- 多线程和多进程
- 多进程和多线程
- 多进程和多线程
- 多进程和多线程
- 多进程和多线程
- 多进程和多线程
- 多线程和多进程
- 多进程和多线程
- 多线程和多进程
- 多进程和多线程
- 多线程和多进程
- 多进程和多线程
- 关于多线程和多进程
- 【复习】多线程和多进程
- 关于tesseract-ocr原理的几篇论文
- 快速理解Kafka分布式消息队列框架
- Java反射学习
- Binary Tree Level Order Traversal
- Java动态绑定机制原理分析
- 多进程和多线程
- 大型网站架构系列:分布式消息队列
- dubbo安装
- C# 不同访问符的访问级别
- GoogleLog(GLog)的简单使用
- 【Unity Shaders】学习笔记之Shader简介(一)
- 第13周 阅读程序,写出运行结果。(1)虚函数
- 分享一个mac自带小工具
- 使用事务时应该避免的陷井