并发模型之——基本概念
2015-04-29 23:37
323 查看
从很久之前在学校到现在我们编程的时候经常都有听说到并发编程,偶尔也会听到说并行,但我们很多人其实都不太清除并发与并行具体的区别在哪;我们刚开始学习编程语言的时候我相信我们写的都是串行程序,一步接着一步来,可以说这比并发程序更不容易出错,但在性能上要远不如并发;还有一种并发具有很强容错性:分布式程序,分布式程序也算是并发程序,还可以具有很强的容错性,可以分开部署;
并发与并行有着本质上的区别。
并发指程序在同一时间只能做一个操作,但是可以在不同的时间点()做多个操作;
如:人是一个多线程的物种,只有你一个人的时候你开启多线程“一边炒菜,一边玩iPad”,但其实在某一时间点,人只可以做一件事,当我们翻炒菜的时候不可能还在玩iPad,当我们在玩iPad的时候不可能还能够翻炒菜,只有我们不在翻炒的时候才能够玩iPad,只有我们放下手中的iPad的时候才能够翻炒,但从时间概念上看我们还是在边炒菜边玩iPad;这样炒出来的菜可能不好吃,哈哈,就如并发编程一样存在资源的竞争,这里竞争的资源是手、眼睛,在计算机里是CPU,处处存在危机,一不小心就烧焦了,哈哈!
并行指在同一个时间点可以做几个相同的操作或几个不相同的操作;
如:现在家有你和你女朋友两个人,这个时候就不用你炒菜了,在你女朋友炒菜的时候你就可以哔哩啪啦的玩iPad了,等你女朋友做好饭就你可以吃了(不是好男人);就如现在很多计算机中都有多个CPU,我们可以写出比并发性能更高可以同时跑在多个CPU上的程序,但前提是你要有条件(多个CPU的计算机);
并发不是并行,有时候并行也是并发,有时候只是并行不是并发;只有当并行从整体上看是多个任务时才也是并发,但并行只是一个任务的时候那只是并行;
这个系列说的只是编程中的并发模型,可能有时候也会谈到并行,但重点是并发模型;
这系列文章主要将会谈论到这么几个并发模型:线程与锁模型、Actor模型、Go的CSP模型等;
文章首发地址:Solinx http://www.solinx.co/archives/175
并发与并行有着本质上的区别。
并发指程序在同一时间只能做一个操作,但是可以在不同的时间点()做多个操作;
如:人是一个多线程的物种,只有你一个人的时候你开启多线程“一边炒菜,一边玩iPad”,但其实在某一时间点,人只可以做一件事,当我们翻炒菜的时候不可能还在玩iPad,当我们在玩iPad的时候不可能还能够翻炒菜,只有我们不在翻炒的时候才能够玩iPad,只有我们放下手中的iPad的时候才能够翻炒,但从时间概念上看我们还是在边炒菜边玩iPad;这样炒出来的菜可能不好吃,哈哈,就如并发编程一样存在资源的竞争,这里竞争的资源是手、眼睛,在计算机里是CPU,处处存在危机,一不小心就烧焦了,哈哈!
并行指在同一个时间点可以做几个相同的操作或几个不相同的操作;
如:现在家有你和你女朋友两个人,这个时候就不用你炒菜了,在你女朋友炒菜的时候你就可以哔哩啪啦的玩iPad了,等你女朋友做好饭就你可以吃了(不是好男人);就如现在很多计算机中都有多个CPU,我们可以写出比并发性能更高可以同时跑在多个CPU上的程序,但前提是你要有条件(多个CPU的计算机);
并发不是并行,有时候并行也是并发,有时候只是并行不是并发;只有当并行从整体上看是多个任务时才也是并发,但并行只是一个任务的时候那只是并行;
这个系列说的只是编程中的并发模型,可能有时候也会谈到并行,但重点是并发模型;
这系列文章主要将会谈论到这么几个并发模型:线程与锁模型、Actor模型、Go的CSP模型等;
文章首发地址:Solinx http://www.solinx.co/archives/175
相关文章推荐
- Tensorflow中基本概念及神经网络模型的介绍
- web服务器 并发 基本概念
- 机器学习基本概念和模型训练基本问题
- 【Java并发编程实战】-----线程基本概念
- 高并发第二弹:并发概念及内存模型(JMM)
- 一、Linux设备模型(1)_基本概念
- 【深度学习 论文综述】深度神经网络全面概述:从基本概念到实际模型和硬件基础
- UML模型的基本概念
- 深度神经网络全面概述:从基本概念到实际模型和硬件基础
- MPEG4 & H.264学习笔记之二 ------ 视频编码基本概念及时域模型
- 【java并发编程实战】-----线程基本概念
- Linux 设备模型基本概念 (一)
- volatile关键字解析&内存模型&并发编程中三概念
- 并发中的一些基本概念
- 模型视图控制器基本概念
- web服务器 并发 基本概念
- volatile关键字解析&内存模型&并发编程中三概念
- ActiveMQ(02):JMS基本概念和模型
- 深度 | 一篇文章带你进入无监督学习:从基本概念到四种实现模型(附论文)
- Java并发编程与高并发解决方案(一)-并发与高并发基本概念