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. Hadoop的完全分布式搭建

    一.准备虚拟机两台 1.将虚拟机进行克隆https://www.cnblogs.com/the-roc/p/12336745.html 2.1将克隆虚拟机的IP修改一下 vi /etc/sysconf ...

  2. QQ群985135948入群密码

    QQ群985135948入群密码:键盘第三排从左往右依次按过去,就是密码 点下面这个键应该可以进群哦!

  3. js替换从excel复制的文本的换行

    var newStr=oldStr.replace(/\n/g,','); 该代码即可将文本中的换行替换为, oldStr为从excel复制过来的值  newStr为替换后的值

  4. 配置maven时,报JAVA_HOME错误

    其实原因很简单,是之前java的jdk配置不合规范! 一.我是win10系统. 二.我的java jdk放在D盘,环境变量里,JAVA_HOME是D:\Program Files\Java\jdk1. ...

  5. oracle三个网络配置文件(listener.ora、tnsname.ora、sqlnet.ora)的作用

    oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下. 1.  sqlne ...

  6. mybatis大于等于小于等于的写法

    第一种写法(1): 原符号 < <= > >= & ' " 替换符号 < <= > >= & &apos; " ...

  7. JS全选按钮练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. AcWing 532. 货币系统

    #include <cstring> #include <iostream> #include <algorithm> using namespace std; ; ...

  9. Codeforces Round #600 (Div. 2) B. Silly Mistake

    #include<iostream> #include<map> #include<set> #include<algorithm> using nam ...

  10. EF CodeFirst数据注解特性详解

    数据注解特性是.NET特性,可以在EF或者EF Core中,应用于实体类上或者属性上,以重写默认的约定规则. 在EF 6和EF Core中,数据注解特性包含在System.ComponentModel ...