从很久之前在学校到现在我们编程的时候经常都有听说到并发编程,偶尔也会听到说并行,但我们很多人其实都不太清除并发并行具体的区别在哪;我们刚开始学习编程语言的时候我相信我们写的都是串行程序,一步接着一步来,可以说这比并发程序更不容易出错,但在性能上要远不如并发;还有一种并发具有很强容错性:分布式程序,分布式程序也算是并发程序,还可以具有很强的容错性,可以分开部署;
     并发与并行有着本质上的区别。
     并发指程序在同一时间只能做一个操作,但是可以在不同的时间点()做多个操作;
     如:人是一个多线程的物种,只有你一个人的时候你开启多线程“一边炒菜,一边玩iPad”,但其实在某一时间点,人只可以做一件事,当我们翻炒菜的时候不可能还在玩iPad,当我们在玩iPad的时候不可能还能够翻炒菜,只有我们不在翻炒的时候才能够玩iPad,只有我们放下手中的iPad的时候才能够翻炒,但从时间概念上看我们还是在边炒菜边玩iPad;这样炒出来的菜可能不好吃,哈哈,就如并发编程一样存在资源的竞争,这里竞争的资源是手、眼睛,在计算机里是CPU,处处存在危机,一不小心就烧焦了,哈哈!
     并行指在同一个时间点可以做几个相同的操作或几个不相同的操作;
     如:现在家有你和你女朋友两个人,这个时候就不用你炒菜了,在你女朋友炒菜的时候你就可以哔哩啪啦的玩iPad了,等你女朋友做好饭就你可以吃了(不是好男人);就如现在很多计算机中都有多个CPU,我们可以写出比并发性能更高可以同时跑在多个CPU上的程序,但前提是你要有条件(多个CPU的计算机);
并发不是并行,有时候并行也是并发,有时候只是并行不是并发;只有当并行从整体上看是多个任务时才也是并发,但并行只是一个任务的时候那只是并行;
这个系列说的只是编程中的并发模型,可能有时候也会谈到并行,但重点是并发模型;

这系列文章主要将会谈论到这么几个并发模型:线程与锁模型、Actor模型、Go的CSP模型等;

文章首发地址:Solinx
http://www.solinx.co/archives/175

转载于:https://www.cnblogs.com/softlin/p/4467793.html

并发模型之——基本概念相关推荐

  1. 构建Java并发模型框架

    2002 年 2 月 22 日 Java的多线程特性为构建高性能的应用提供了极大的方便,但是也带来了不少的麻烦.线程间同步.数据一致性等烦琐的问题需要细心的考虑,一不小心就会出现一些微妙的,难以调试的 ...

  2. 证券期货交易高并发模型

    为什么80%的码农都做不了架构师?>>>    交易系统中的产品和产品之间是隔离的,产品之间的消息不共享,也不会造成干扰. 同一个产品下的订单必须顺序处理,但不同的产品之间的订单没有 ...

  3. 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  4. Golang CSP并发模型

    今天介绍一下 go语言的并发机制以及它所使用的CSP并发模型 CSP并发模型 CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型. ...

  5. 从并发模型看 Go 的语言设计

    传统的程序语言设计都不会将输入输出作为语言的核心,但 Tony Hoare 认为输入输出是基本的编程原语,且通信顺序进程(Communicating sequential processes,CSP) ...

  6. blp模型 上读下写_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  7. Go语言并发模型:使用 context

    简介 在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理.请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务.用来处理 ...

  8. 七周七并发模型与七周七语言

    借助Java.Go等多种语言的特长,深度剖析所有主流并发编程模型 基于锁和线程的并发模型是目前最常用的一种并发模型,但是并发编程模型不仅仅只有这一种,本书几乎涵盖了目前所有的并发编程模型.了解和熟悉各 ...

  9. 浅谈Actor并发模型

    目录 0x00    Actor出现的背景 0x01    Actor如何通过消息传递避免数据竞争? 0x02    Actor到底是什么? 0x03    Actor特性 0x031    容错 0 ...

最新文章

  1. /src/log4j.xml
  2. 编程 ul 不能一行显示 跳到下行_单片机编程魔法之三权分立
  3. HASH暴力破解工具-Hashcat
  4. Kotlin的hello world
  5. acwing1304. 佳佳的斐波那契
  6. JEECG 前端JS国际化实现,采用i18n新技术方案
  7. 看过各地的方言标语,才明白什么叫文字的力量
  8. js获取el表达式的值_Vue.js
  9. Vue.js 的开始!
  10. tp3.2 volist标签
  11. 计算器归零按键c语言,计算器有关按键说明大全
  12. 使用AOMEI无损数据的动态磁盘转基本磁盘
  13. 江苏省人力资源社会保障厅 省职称办 关于做好2021年度职称评审工作的通知
  14. 微信个人号API开发
  15. 新世纪Nerv战士 - 京东首页补完计划
  16. 通杀! 熬夜码的 - 八万字 - 让你一文读懂SQL注入漏洞原理及各种场景利用
  17. 微信开发之data:image/png;base64,
  18. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机
  19. AT24C02 能读不能写的问题
  20. android微信支付吊不起微信,安卓系统微信支付失败原因

热门文章

  1. pt1000温度对照表_温度传感器的常用检测方法
  2. 怎样呵护友谊_怎样呵护友谊(作文)
  3. 这40个linux命令,提高工作效率
  4. 100+人的企业IP怎么进行安全配置 ?
  5. 双十一购物节,Nacos 1.4.0 + Go SDK 1.0.1发布
  6. python2和3的编码区别_Python2和3字符编码的区别
  7. Linux7安装系统服务,linux系统安装及初始服务优化-centos7.4
  8. 24点游戏java_Java实现24点小游戏
  9. api怎么写_月薪几十K 的人是怎么设计REST API
  10. java面试 mysql分库分表_MySQL性能管理及架构设计(三):SQL查询优化、分库分表 - 完结篇...