一 理解篇

  • 前言

本文仅仅用作借鉴使用,作者刚入行不久,所以请不小心看到这篇文章的朋友,手下留情。

本文以小故事的形式进行叙述,逻辑不通之处。请理解。

如有错误 ,欢迎指出。

谢谢。                                                                                                    最后修改时间:2019-01-25


  • 1.0.0 进程

老刘是一个软件公司的老板,公司下有两个部门,产品设计部门(产品进程)和研发部门(研发进程),产品设计部门在一楼,研发部门在二楼(独立地址空间)。

两个部门之间经常因为产品设计比较难以实现和开发进度缓慢而发生争执(开销大)。

  • 1.0.0.0 分布式

随着老刘的公司越来越大,项目也是越来越大,渐渐的,其它公司开始和老刘的公司进行商业合作,联合开发出一套产品,每个公司只负责产品的一个模块,由于目标明确,两个部门之间,合作愉快,不再发生争执(开销小)。

  • 1.0.1 线程

前天老刘在公司安装了一台打印机(打印机线程)。

  • 1.0.1.0 死锁

昨天发生了一件事,产品部门的小王和设计部门的小吴吵架了,因为两个人要打印文件(调用打印机线程),同时走到了打印机前(偶发事件),谁都想先把文件打印出来(死锁)。

为了防止这种事情再次发生,老刘规定如果再次遇到这种情况,互相不退让的情况下(时间上限),用抛硬币(随机)的方式决定谁先打印。

  • 1.0.2 微线程

昨天产品部门的小王和研发部门的小吴又吵架了,因为两个人谁都没有硬币,老刘很头疼,于是雇了张女士来专门负责打印机的打印,在遇到相同情况,随机选一个人的文件进行打印。并且在遇到紧急文件情况下,可以先进行紧急文件的打印。

  • 1.1.0 同步

在两个文件都紧急的情况下,先完成对最先打印的文件,依次按顺序打印。

  • 1.1.1 异步

老刘找张女士打印一份文件,然后回来继续工作(没得到打印结果),张女士告诉老张,可以隔一会来看打印结束没有,也可以张女士在打印完了之后发消息通知老张,或者打印完了给老王打电话,老王被选择恐惧症折磨的快疯了。

  • 1.2.0 并发

老刘创业初期,公司刚刚成立,整个研发部,只有小吴(CPU)一个人,开发进度缓慢,小吴只能一件事一件事的做。

  • 1.2.1 并行

创业中期,公司初具规模,研发部增加到了一百人(CPU),开发进度很快。

  • 1.2.1.1 高并发

(由于小编对高并发概念尚不清晰,故尚未编写)

  • 1.3.0 阻塞

张女士在打印文件,在文件打印过程中,张女士要一直等待打印结束。

  • 1.3.1 非阻塞

张女士又在打印文件,在文件打印过程中,张女士在和小吴唠家常。


参考链接:

https://www.cnblogs.com/mhq-martin/p/9035640.html

https://blog.csdn.net/woshishui918/article/details/78658046

https://blog.csdn.net/weixin_41819299/article/details/81259749

C# 【一】进程 , 线程 , 微线程 , 同步 , 异步 , 并发 , 并行 , 阻塞 , 非阻塞的更多相关文章

  1. Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就绪,挂起,运行) ,***协程概念,yield模拟并发(有缺陷),Greenlet模块(手动切换),Gevent(协程并发)

    Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就 ...

  2. 进程&线程 同步异步&阻塞非阻塞

    2015-08-19 15:23:38 周三 线程 线程安全 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码 线程安全问题都是由全局变量及静态变量引起的 若每个线程中对 ...

  3. Python并发编程系列之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程

    1 引言 并发.并行.串行.同步.异步.阻塞.非阻塞.进程.线程.协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念. 2 并发与并行 在解释并发与并行之前 ...

  4. GIL 线程池 进程池 同步 异步 阻塞 非阻塞

    1.GIL 是一个全局解释器锁,是一种互斥锁 为什么需要GIL锁:因为一个python.exe进程中只有一份解释器,如果这个进程开启了多个线程都要执行代码 多线程之间要竞争解释器,一旦竞争就有可能出现 ...

  5. python GIL锁、进程池与线程池、同步异步

    一.GIL全局解释器锁 全局解释器锁 在CPython中,全局解释器锁(GIL)是一个互斥锁,它可以防止多个本机线程同时执行Python代码.之所以需要这个锁,主要是因为CPython的内存管理不是线 ...

  6. python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型 池子内什么时候装线程:并发的任务属于I ...

  7. GIL锁、进程池与线程池、同步异步

    GIL锁定义 GIL锁:Global Interpreter Lock  全局解释器 本质上是一把互斥锁 官方解释: 在CPython中,这个全局解释器锁,也称为GIL,是一个互斥锁,防止多个线程在同 ...

  8. 进程| 线程 | 阻塞 | 阻塞&非阻塞 和 同步&异步

    阻塞&非阻塞 阻塞IO 调用之后一定要等到系统内核完成所有的操作之后才结束,因此它的缺点:CPU等待IO,处理能力得不到充分利用. 非阻塞IO 为了解决阻塞IO带来的一些问题,内核提供了非阻塞 ...

  9. Python之路(第三十六篇)并发编程:进程、同步异步、阻塞非阻塞

    一.理论基础 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念展开的. 即使可以利用的cpu只有一个(早期的 ...

随机推荐

  1. Java课程之团队开发(团队介绍)

    一.介绍团队和团队成员 团队名称:凯域软创 团队成员介绍:张某某,崔某某,焦某某,陈某 二.关于团队作品 1.作品名称:课程表 2.你的创意解决了用户的什么需求:查看课程信息的需求 3.你有什么招数用 ...

  2. 神经网络_线性神经网络 3 (Nerual Network_Linear Nerual Network 3)

    1 LMS 学习规则_解方程组 1.1 LMS学习规则举例 X1=[0 0 1]T,t1=0:X2=[1 0 1]T,t2=0:X3=[0 1 1]T,t3=0:X1=[1 1 1]T,t1=1. 设 ...

  3. spring boot 集成 Redis

    前提:你已经安装了Redis 1.创建一个spring boot 工程 2.pom 引入依赖:spring-boot-starter-data-redis <dependency> < ...

  4. 访问不了虚拟机 ubuntu中的myql,解决方案

    ============================================================== 1. 现象 2. 原因分析 2.1 访问虚拟机中的mysql的前提: 你的 ...

  5. oracle11G 用户密码180天修改概要文件过程

    oracle11G 用户密码180天修改概要文件过程 原因 创建用户的时候不指定概要文件的默认的概要文件是default, 而默认的概要文件中的设置如下,注意斜体部分 PROFILE RESOURCE ...

  6. RabbitMQ 集群原理和完善

    一.RabbitMQ集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现 ...

  7. 高级Java面试总结2

    1. JVM结构原理.GC工作机制详解 答:具体参照:JVM结构.GC工作机制详解     ,说到GC,记住两点:1.GC是负责回收所有无任何引用对象的内存空间. 注意:垃圾回收回收的是无任何引用的对 ...

  8. CSS3 阴影模拟灯照效果

    效果如下: 代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...

  9. SVG PATH 生成器

    参考网站:http://dayu.pw/svgcontrol/ 主要功能:手动可视化生成 SVG图片PATH路径. 效果如下: 代码如下: <!DOCTYPE html> <!-- ...

  10. [Swift]LeetCode213. 打家劫舍 II | House Robber II

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...