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. HDFS写入数据

    HDFS副本摆放策略 不同的版本副本摆放策略可能并不一致,HDFS主要采用一种机架感知(rack-ware)的机制来实现摆放策略. 由于不同的机架上节点间通信要通过交换机(switches),同一机架 ...

  2. Python 类方法、实例方法、静态方法的使用与及实例

    类方法 使用装饰器@classmethod 第一个参数必须是当前类对象,该参数名一般约定为“cls” (可修改但不建议)通过他来传递类的属性和方法(不能传实例的属性和方法) 调用:实例对象和类对象多可 ...

  3. Linux - mysql 异常:登录不上mysql数据库

    问题描述 重启虚拟机之后,用命令 mysql -u root -p 登录不上 mysql 数据库,页面显示: 但是,用命令 service mysqld status 可以查看状态 解决方案 1.查看 ...

  4. Android 开发 facebook分享,登陆,获取信息

    1 搭建开发环境    1.1 在Facebook官网SDK中,下载4.0.0的SDK包.        1.2 使用Eclipse导入SDK包中的Facebook工程,并添加android-supp ...

  5. session的到底是做什么的?

    原文地址:https://blog.csdn.net/h19910518/article/details/79348051 前言: 今天就来彻底的学一些session是个啥东西,我罗列了几个需要知道的 ...

  6. HTTP响应头 状态码

    HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传 ...

  7. C#中字节数组byte[]和字符串string类型的相互转换

    C#中字节数组byte[]和字符串string类型的相互转换: string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBy ...

  8. Java的多态-进阶

    Java的多态——进阶 总括 Parent p = new Child(); 反之,Child() c = new Parent(); 会报错. 当使用多态方式调用方法时,首先检查父类中是否有该方法. ...

  9. Jupyter Notebook 更改本地目录

    首先如果使用anaconda直接安装jupyter notebook的话,直接在windows的cmd中输入jupyter notebook是没有用的,参见下图: 原因可能是anaconda代理了所有 ...

  10. mysql学习笔记(1)

    以下笔记并不系统,只是针对遇到的问题和特别的点记录一下: 数据类型: 1.mysql小数存储数据类型 有float double decimal ,前两个不属于精确类型,不推荐使用,一般生产库亦不会使 ...