当前位置: 首页 > news >正文

并发(Concurrent)与并行(Parallel)

http://www.blogjava.net/junglesong/archive/2008/02/22/181356.html

当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态.这种方式我们称之为并发(Concurrent).
当系统有一个以上CPU时,则线程的操作有可能非并发.当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)


多线程在并发和并行环境中的不同作用

在并发环境时,多线程不可能真正充分利用CPU,节约运行时间,它只是以”挂起->执行->挂起”的方式以很小的时间片分别运行各个线程,给用户以每个线程都在运行的错觉.在这种环境中,多线程程序真正改善的是系统的响应性能和程序的友好性.
在并行环境中, 一个时刻允许多个线程运行,这时多线程程序才真正充分利用了多CPU的处理能力, 节省了整体的运行时间.在这种环境中,多线程程序能体现出它的四大优势:充分利用CPU,节省时间,改善响应和增加程序的友好性.

PS:在多核时代来临后,开发多线程程序的能力更是每个程序员都该具备的.

http://blog.csdn.net/proing/archive/2008/01/28/2069264.aspx

并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。

前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生.

来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头。

 



986_4789c939a5da8.jpg 295X207 px

986_4789c942a00d3.jpg 313X207 px

转载于:https://www.cnblogs.com/NickyYe/archive/2008/12/01/1344802.html

相关文章:

  • 产生title跟随效果
  • 优化MySQL数据库性能的八种方法
  • 云计算将如何改变世界
  • 最近打开网易的邮箱为什么弹出些黄色网站的窗口呢
  • javascript面向对象编程的学习(基础)
  • 怎么在CString的Format函数里包含“%”,也就是用函数输出字符“%”?
  • 看看去年的北京庙会
  • CreatePen
  • jQuery技巧大放送
  • 浅析值类型与引用类型的内存分配
  • 在线抓图WebSnap Beta 1.2 更新
  • 软件开发者面试百问(转)
  • tomcat:Cannot get a connection, pool exhausted
  • 网站架构探索(1)---序言 王泽宾
  • asp.net 给button 控件 换个背景图片
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 230. Kth Smallest Element in a BST
  • Babel配置的不完全指南
  • CAP 一致性协议及应用解析
  • cookie和session
  • JavaScript设计模式之工厂模式
  • Js基础知识(四) - js运行原理与机制
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • magento 货币换算
  • Mithril.js 入门介绍
  • MobX
  • October CMS - 快速入门 9 Images And Galleries
  • Python学习笔记 字符串拼接
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Sass 快速入门教程
  • Vue2.0 实现互斥
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 给github项目添加CI badge
  • 基于遗传算法的优化问题求解
  • 区块链技术特点之去中心化特性
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​flutter 代码混淆
  • ​queue --- 一个同步的队列类​
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (10)ATF MMU转换表
  • (14)Hive调优——合并小文件
  • (2)nginx 安装、启停
  • (2)STM32单片机上位机
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4.10~4.16)
  • (9)STL算法之逆转旋转
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (剑指Offer)面试题34:丑数
  • (三)uboot源码分析
  • (四)Linux Shell编程——输入输出重定向