其他 - 阻塞 & 同步 的基本认识
1. 概述
- 有些概念, 老是弄不清楚
- 同步异步
- 阻塞非阻塞
2. 准备
- 场景
- 角色
- client
- 发起请求
- 接受请求
- server
- 接受请求
- 执行操作
- 返回响应
- client
- 行为
- 大致是一个 C/S 模式的模型
- 角色
3. 阻塞 & 非阻塞
- 概述
- 对 客户端 行为的描述
- 行为
- 阻塞
- client 发出请求
- client 原地等待 server 处理完
- client 接到 server 响应, 继续前进
- 非阻塞
- client 发出请求
- 当然多数时候, 要确认 server 收到了请求, 简单考虑的话, 可以先不提
- client 继续前进
- client 发出请求
- 关注点
- client 向 server 发出请求后的行为模式
- 阻塞
4. 同步 & 异步
- 概述
- 对 服务端 行为的描述
- 行为
- 同步
- server 接受请求
- server 处理请求
- server 返回响应
- 异步
- server 接受请求
- server 返回响应
- 收到请求
- server 处理请求
- server 返回响应
- 处理完成
- 关注点
- server 在收到请求后的行为模式
- 其他
- server 处理完请求, client 有多重方式知道 处理完成
- client 轮询
- client 主动
- 反复询问 server 情况
- client 监听
- server 主动
- 处理完后立即通知 client
- client 轮询
- server 处理完请求, client 有多重方式知道 处理完成
- 同步
5. 组合
- 阻塞同步
- 最常见的模型
- 最简单
- 最常见的模型
- 阻塞异步
- 有点二逼的模型
- client 明明可继续前进, 非要傻等到 server 的处理完成
- 有点二逼的模型
- 非阻塞同步
- 有点二逼的模型
- server 明明可以返回, 继续接受其他请求, 但还是在哪里阻塞
- 有点二逼的模型
- 非阻塞异步
- 常见的模型
- 最高效
- 常见的模型
其他 - 阻塞 & 同步 的基本认识的更多相关文章
- C#学习笔记之线程 - 高级主题:非阻塞同步
非阻塞同步 - Nonblock Synchronization 前面提到,即使在简单的赋值和增加一个字段的情况下也需要处理同步.尽管,使用锁可以完成这个功能,但是锁必定会阻塞线程,需要线程切换,在高 ...
- 进程理论 阻塞非阻塞 同步异步 I/O操作
1.什么是进程 进程指的是一个正在运行的程序,进程是用来描述程序执行过程的虚拟概念 进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的 2.操作系统 操作系统 ...
- Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.
1.阻塞. 同步. 1) 读取的文件: input.txt 菜鸟教程官网地址:www.runoob.com 2) main.js var fs = require("fs"); / ...
- 深入理解非阻塞同步IO和非阻塞异步IO
这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...
- 简单测试Java线程安全中阻塞同步与非阻塞同步性能
摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访 ...
- boot asio 非阻塞同步编程---非阻塞的accept和receive。
boot asio 非阻塞同步编程---非阻塞的accept和receive. 客户端编程: #include<boost/timer.hpp> #include <iostream ...
- 从同步原语看非阻塞同步以及Java中的应用
非阻塞同步:基于冲突检测的乐观并发策略,通俗讲就是先进行操作,如果没有其他线程争用共享数据,那操作就成功了,如果争用数据有冲突那就采用其他的补偿措施(最常见的就是不断重试直到成功),这种乐观的并发策略 ...
- 非阻塞同步机制和CAS
目录 什么是非阻塞同步 悲观锁和乐观锁 CAS 非阻塞同步机制和CAS 我们知道在java 5之前同步是通过Synchronized关键字来实现的,在java 5之后,java.util.concur ...
- 非阻塞同步机制与CAS操作
锁的劣势 Java在JDK1.5之前都是靠synchronized关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程 持有守护变量的锁,都采用独占的方式来访问这些 ...
随机推荐
- numpy学习(三)
练习篇(Part 3) 31. 略 32. Is the following expressions true? (★☆☆) np.sqrt(-1) == np.emath.sqrt(-1) prin ...
- [USACO12FEB] 附近的牛 Nearby Cows - 树形dp,容斥
给你一棵 \(n\) 个点的树,点带权,对于每个节点求出距离它不超过 \(k\) 的所有节点权值和 \(m_i\) 随便定一个根,设\(f[i][j]\)表示只考虑子树,距离为\(j\)的权值和,\( ...
- 项目转移时发生的错误<springboot+mybatis(xml逆向工程自动生成)>
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'app ...
- C# Timer 控件的用法
一.主要的属性 在 Windows 窗体应用程序中,定时器控件(Timer)与其他的控件略有不同,它并不直接显示在窗体上,而是与其他控件连用. Enabled 属性: 用于设置该Timer控件是否可用 ...
- SpringCloud Netflix Zuul
网关的概念 服务A.B都是暴露出来,供外部直接调用的, 有时候需要对请求进行过滤.校验,比如检验用户是否已登陆,可以写在暴露出来的每个服务中,但要在多个服务中写相同的代码,太繁琐,可以提出来,放在网关 ...
- hdu1716--全排列(dfs+有重复数字+输出格式)
Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ...
- JavaDay1(上)
Java learning_Day1(上) 一切准备工作已经做好,虽然自己之前也零零碎碎学了一些Java的基础知识,貌似现在忘得差不多了,趁寒假契机从头开始学习吧 本人学习视频用的是马士兵的,也在这里 ...
- AcWing 891. Nim游戏
//a1 ^ a2 ^ ··· ^ an = 0 –>先手必败: //a1 ^ a2 ^ ··· ^ an != 0 –>先手必胜: #include<iostream> us ...
- Vue的iview组件框架select远程搜索,选中后不刷新的问题
1.场景:弹框内有一个下拉组件(支持搜索),当选择完数据后弹框关闭,再次打开后,下拉框内的数据是刚才选中的数据.原因:分析后觉得是搜索内容没有清空,导致下拉的数据只有一个 2.解决方案 a .解决:调 ...
- (GHRD)HPS
DE1作为ARM+FPGA的组合,ARM和FPGA之间通信,两个区块间有三个通道可以让两部分实现传输数据,统称为 HPS-FPGA AXI Bridges. 分别为:FPGA-to-HPS Bridg ...