其他 - 阻塞 & 同步 的基本认识
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关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程 持有守护变量的锁,都采用独占的方式来访问这些 ...
随机推荐
- Qt中的Label和PushButton背景图自动缩放设置
Label 背景图自动缩放 QPixmap* pixmap = new QPixmap(":/images/HeadIcon/1.png"); pixmap->scaled( ...
- 使用在react hooks+antd ListView简单实现移动端长列表功能
import React, { useState, useEffect } from "react" import { ListView } from "antd-mob ...
- AcWing 1012. 友好城市
#include<iostream> #include<algorithm> using namespace std ; typedef pair<int,int> ...
- Jquery 如何设置多个attr()属性
Jquery 如何设置多个attr()属性? 文章来源:刘俊涛的博客 欢迎关注公众号.留言.评论,一起学习. _________________________________________ ...
- ansible笔记(13):变量(二)
1.谈一谈[Gathering Facts]:使用setup模块查看 当我们运行一个playbook时,默认都会运行一个名为“[Gathering Facts]”的任务,前文中已经大致的介绍过这个默认 ...
- EF中的查询方法
1.Linq to Entity(L2E)查询 默认返回IQueryable类型 2.原生SQL查询和操作 ①DbSet.SqlQuery()和Database.SqlQuery() 返回DbSqlQ ...
- PP: Composite visual mapping for time series visualization
However: The conventional visual mapping maps each data attribute onto a single visual channel Purpo ...
- SpringMVC 配置.html拦截时,返回JSON数据时出现406错误解决方案
[说明]在SpringMVC框架的使用中常常会使用@ResponseBody注解,修饰"处理器"(Controller的方法),这样在处理器在返回完毕后,就不走逻辑视图,而是将返回 ...
- Codeforces Round #570 (Div. 3) B. Equalize Prices
原文链接https://codeforces.com/contest/1183/problem/B 题意:进行Q组测试,在每组中有长度为n的数组a[i],然后现在给你一个K,问你找到一个bi使得|ai ...
- js基础之--变量 作用域和内存问题
基本类型:Undefind Null Boolean Number String 引用类型: 对象 在操作对象时,实际上实在操作对象的引用而不是实际的对象.为此,引用类型的值是按引用访问的. 从一个变 ...