1. 概述

  1. 有些概念, 老是弄不清楚

    1. 同步异步
    2. 阻塞非阻塞

2. 准备

  1. 场景

    1. 角色

      1. client

        1. 发起请求
        2. 接受请求
      2. server
        1. 接受请求
        2. 执行操作
        3. 返回响应
    2. 行为
      1. 大致是一个 C/S 模式的模型

3. 阻塞 & 非阻塞

  1. 概述

    1. 对 客户端 行为的描述
  2. 行为
    1. 阻塞

      1. client 发出请求
      2. client 原地等待 server 处理完
      3. client 接到 server 响应, 继续前进
    2. 非阻塞
      1. client 发出请求

        1. 当然多数时候, 要确认 server 收到了请求, 简单考虑的话, 可以先不提
      2. client 继续前进
    3. 关注点
      1. client 向 server 发出请求后的行为模式

4. 同步 & 异步

  1. 概述

    1. 对 服务端 行为的描述
  2. 行为
    1. 同步

      1. server 接受请求
      2. server 处理请求
      3. server 返回响应
    2. 异步
      1. server 接受请求
      2. server 返回响应
        1. 收到请求
      3. server 处理请求
      4. server 返回响应
        1. 处理完成
    3. 关注点
      1. server 在收到请求后的行为模式
    4. 其他
      1. server 处理完请求, client 有多重方式知道 处理完成

        1. client 轮询

          1. client 主动
          2. 反复询问 server 情况
        2. client 监听
          1. server 主动
          2. 处理完后立即通知 client

5. 组合

  1. 阻塞同步

    1. 最常见的模型

      1. 最简单
  2. 阻塞异步
    1. 有点二逼的模型

      1. client 明明可继续前进, 非要傻等到 server 的处理完成
  3. 非阻塞同步
    1. 有点二逼的模型

      1. server 明明可以返回, 继续接受其他请求, 但还是在哪里阻塞
  4. 非阻塞异步
    1. 常见的模型

      1. 最高效

其他 - 阻塞 & 同步 的基本认识的更多相关文章

  1. C#学习笔记之线程 - 高级主题:非阻塞同步

    非阻塞同步 - Nonblock Synchronization 前面提到,即使在简单的赋值和增加一个字段的情况下也需要处理同步.尽管,使用锁可以完成这个功能,但是锁必定会阻塞线程,需要线程切换,在高 ...

  2. 进程理论 阻塞非阻塞 同步异步 I/O操作

    1.什么是进程 进程指的是一个正在运行的程序,进程是用来描述程序执行过程的虚拟概念 进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的 2.操作系统 操作系统 ...

  3. Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.

    1.阻塞. 同步. 1) 读取的文件: input.txt 菜鸟教程官网地址:www.runoob.com 2) main.js var fs = require("fs"); / ...

  4. 深入理解非阻塞同步IO和非阻塞异步IO

    这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...

  5. 简单测试Java线程安全中阻塞同步与非阻塞同步性能

    摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访 ...

  6. boot asio 非阻塞同步编程---非阻塞的accept和receive。

    boot asio 非阻塞同步编程---非阻塞的accept和receive. 客户端编程: #include<boost/timer.hpp> #include <iostream ...

  7. 从同步原语看非阻塞同步以及Java中的应用

    非阻塞同步:基于冲突检测的乐观并发策略,通俗讲就是先进行操作,如果没有其他线程争用共享数据,那操作就成功了,如果争用数据有冲突那就采用其他的补偿措施(最常见的就是不断重试直到成功),这种乐观的并发策略 ...

  8. 非阻塞同步机制和CAS

    目录 什么是非阻塞同步 悲观锁和乐观锁 CAS 非阻塞同步机制和CAS 我们知道在java 5之前同步是通过Synchronized关键字来实现的,在java 5之后,java.util.concur ...

  9. 非阻塞同步机制与CAS操作

    锁的劣势 Java在JDK1.5之前都是靠synchronized关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程 持有守护变量的锁,都采用独占的方式来访问这些 ...

随机推荐

  1. MongoDB geonear和文本命令驱动程序2.0

    文本查询,q作为查询字符串: coll.FindAsync<Foo>(Builders<Foo>.Filter.Text(q)); 文本查询需要一个文本索引.要从C#创建代码, ...

  2. 通过Process启动外部程序

    #region Process //声明一个程序类 System.Diagnostics.Process Proc; try { //声明一个程序信息类 System.Diagnostics.Proc ...

  3. java通过浏览器请求头(User-Agent)获取访问者设备信息以及系统版本

    个人博客 地址:http://www.wenhaofan.com/article/20181125220342 在开发AutuBlog项目时需要做后台的登录记录,想起浏览器的User-Agent,于是 ...

  4. NOI2005 维护数列 lg2042

    这道题据说是noi题目中算是比较毒瘤的数据结构题了,5k多的代码加上随手写挂细节,我调了两天 题面见https://www.luogu.org/problemnew/show/P2042 (歪个题,这 ...

  5. Mvc-WebAPI特性路由(自定义路由)Demo

    Demo由VS2017编写. 1.先建一个WebApi项目 2.WebApiConfig.cs需要注册特性路由,config.MapHttpAttributeRoutes(); 3.项目默认有2个Co ...

  6. Python的特点

    简单易学. 免费开源. 跨平台. 解释性.不需要编译就可以直接运行,使用更加简单,移植性更强. 面向对象.arcgis也支持面向对象编程.

  7. 使用PHP链接MySQL

    一.使用PHP查询MySQL数据库: 1.通过PHP来访问MySQL的步骤是: 连接到MySQL 选择操作的数据库 创建查询的字段 执行查询的语句 检索出结果并在网页上显示 断开与MySQL的连接 我 ...

  8. SQL语法(UNION,JOIN)

    SQL语法 union, union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 注意,UNION 内部的每个SELECT语句必须拥有相同数量的列.列也必须拥有相似的数 ...

  9. 连接本地mysql报错

    报错信息如下: 原因为未启动本地mysql,没设置开机自启动.

  10. LED Decorative Light Supplier - LED Neon Application: 5 Advantages

    In the past 100 years, lighting has gone a long way. LED decorative lighting is now designed to meet ...