当前位置: 首页 > news >正文

TCP模型和工作沟通方式

我们如何与客户沟通?理科生和技术人员可能在沟通技巧方面有所欠缺。

那么我们如何理解和掌握沟通的原则和技巧呢?我发现TCP网络交互模型很好的描述了沟通的原则和要点。下面我们就从TCP来讲沟通的过程。

TCP的客户端就像客户(甲方),TCP的服务端就如同乙方。网络上有一句话:做靠谱的人,凡事有交代,件件有着落,事事有回应。这正是TCP网络模型。

及时反馈

TCP的任何一端发送消息给对方,对方在收到消息后,就会立即回复一个ACK消息。表示消息已经收到。而不要让对方尝试“丢包重传”。

异步和非阻塞

我们的工作应该是异步的,可中断的方式进行。我们在回应对方的需求的同时,我方应该根据已知信息和经验推断开始准备下一步的工作。不要“戳一下动一下”。

在一件长任务的执行中,需要有一些中断点,在收到一些临时任务(或者是上级询问进度等),可以放到工作堆栈上(backlog),在当前工作阶段完成点(中断点),再来处理这些临时任务,之后从中断点恢复之前的工作。至于你想用什么工具来帮助你更好的管理这一过程,就在于你的偏好和选择。

当一件工作任务完成,或者需要进一步讨论的时候,我们会想对端发消息,告诉对方执行结果,或者进一步讨论的内容。这个过程就如同TCP的业务消息的交互过程。

IO线程和任务调度

客户的需求在收到以后,我们需要立即安排相应的人员进行处理。这个过程就类似于TCP 监听者(listener)对new connection的指派,或者IO线程在收到消息后dispatch给worker thread,尽量不要让IO线程被其他长任务阻塞。而暂时需要挂起的任务,可以设置一个定时器或者触发器,在适当的时间跳出了进行重新分派。

对于管理者(或者team leader)需要做好及时分派的工作,不能让工作任务堆积在自己手里,形成瓶颈,使得team的吞吐量太低。

备注

早两年写了上面一些内容,一直放在草稿箱里。先丢出来吧,后面有时间再完善。

(接下来还会讲。工欲善其事,必先利其器,我们如何解决工作中的问题
培养好习惯,表扬,鼓励,规则的重要性,我们如何教育孩子)

相关文章:

TCP模型和工作沟通方式

我们如何与客户沟通?理科生和技术人员可能在沟通技巧方面有所欠缺。 那么我们如何理解和掌握沟通的原则和技巧呢?我发现TCP网络交互模型很好的描述了沟通的原则和要点。下面我们就从TCP来讲沟通的过程。 TCP的客户端就像客户(甲方&#xff…...

Langchain 的 ConversationSummaryBufferMemory

Langchain 的 ConversationSummaryBufferMemory ConversationSummaryBufferMemory 在内存中保留最近交互的缓冲区,但不仅仅是完全刷新旧的交互,而是将它们编译成摘要并使用两者。但与之前的实现不同的是,它使用令牌长度而不是交互次数来确定何…...

【Rust 基础篇】Rust 通道实现单个消费者多个生产者模式

导言 在 Rust 中,我们可以使用通道(Channel)来实现单个消费者多个生产者模式,简称为 MPMC。MPMC 是一种常见的并发模式,适用于多个线程同时向一个通道发送数据,而另一个线程从通道中消费数据的场景。本篇博…...

HTTP协议各版本介绍

HTTP协议是一种用于传输Web页面和其他资源的协议。 下面详细介绍一下HTTP的各个版本: 1.HTTP/0.9 这是最早的HTTP版本,于1991年发布。它非常简单,只能传输HTML格式的文本,并且不支持其他类型的资源、请求头和状态码。 2.HTTP/1…...

玩转ChatGPT:Custom instructions (vol. 1)

一、写在前面 据说GPT-4又被削了,前几天让TA改代码,来来回回好几次才成功。 可以看到之前3小时25条的限制,现在改成了3小时50条,可不可以理解为:以前一个指令能完成的任务,现在得两条指令? 可…...

黄东旭:The Future of Database,掀开 TiDB Serverless 的引擎盖

在 PingCAP 用户峰会 2023 上, PingCAP 联合创始人兼 CTO 黄东旭 分享了“The Future of Database”为主题的演讲, 介绍了 TiDB Serverless 作为未来一代数据库的核心设计理念。黄东旭 通过分享个人经历和示例,强调了数据库的服务化而非服务化…...

Linux环境搭建(XShell+云服务器)

好久不见啊,放假也有一周左右了,简单休息了下(就是玩了几天~~),最近也是在学习Linux,现在正在初步的学习阶段,本篇将会简单的介绍一下Linux操作系统和介绍Linux环境的安装与配置,来帮…...

-bash: /bin/rm: Argument list too long

有套数据库环境,.aud文件太多导致/u01分区使用率过高,rm清理时发现报错如下 [rootdb1 audit]# rm -rf ASM1_ora_*202*.aud -bash: /bin/rm: Argument list too long [rootdb1 audit]# rm -rf ASM1_ora_*20200*.aud -bash: /bin/rm: Argument list too…...

5个步骤完成Linux 搭建Jdk1.8环境

1:首先,在Linux系统中创建一个目录,用于存放JDK文件。可以选择在/opt目录下创建一个新的文件夹,例如/opt/jdk。 sudo mkdir /opt/jdk 2:将下载的jdk-8u381-linux-x64.tar.gz文件复制到新创建的目录中。 sudo cp jdk…...

【JAVASE】运算符

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 运算符 1. 什么是运算符2. 算术运算符3.…...

Emacs之改造搜索文件fd-dired(基于fd命令)(一百二十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

字典序排数(力扣)思维 JAVA

给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。 示例 1: 输入:n 13 输出:[1,10,11,12,13,2,3,4,5,6,7,8,9] 示例 2: 输入:n 2 输…...

NLP 中的pad/padding操作代码分析

今天分析一下NLP中的pad操作代码: 该方法的作用是将输入的序列列表seqs进行填充操作,使其具有相同的长度,以便进行批处理。填充使用指定的pad_token进行,并生成一个对应的mask标志列表,用于标记哪些部分是填充内容&am…...

JavaWeb 速通HTTP

目录 一、HTTP快速入门 1.HTTP简介 : 2.HTTP请求头 : 3.HTTP响应头 : 二、HTTP响应状态码 1.基本介绍 : 2.常见状态码 : 3.状态码的分类 : 4.完整状态码汇总 : 三、HTTP请求包和响应包 1.请求包分析 : 1 GET请求 (1) 说明 (2) doGet返回数据给浏览器 (3) form表单提…...

Vue 本地应用 图片切换 v-show v-bind实践

点击切换图片的本质,其实修改的是img标签的src属性。 图片的地址有很多个,在js当中通过数组来保存多个数据,数组的取值结合索引,根据索引可以来判断是否是第一张还是最后一张。 图片的变化本质是src属性被修改了,属性…...

AI生成-- autocomplete 模糊搜索

el-autocomplete可以通过设置属性来实现模糊搜索功能。 首先需要设置一个搜索函数&#xff0c;即在输入框输入内容时会调用的函数&#xff0c;用来返回所有符合条件的结果。这个函数需要接收两个参数&#xff1a;输入框的值和一个回调函数。 <el-autocompletev-model"…...

怎么用手机做文字二维码?文本内容在线生成二维码技巧

手机端怎么将文字制作二维码呢&#xff1f;现在二维码是日常生活中经常会使用的一种工具&#xff0c;能够将不同的内容生成二维码使用&#xff0c;比如文本二维码就是常用的一种类型。那么当我们在没有电脑的情况下时&#xff0c;如何通过手机来快速生成二维码&#xff08;二维…...

【Ap模块EM】08-怎么让Execution Management成为第一个执行的进程?

前面的文章,我们讲述了ubuntu系统上电执行的流程,那么在Ap AutoSAR中Execution Management怎么成为第一个被执行的进程呢额?就是让它取代传统的init进程,成为ubuntu系统第一个执行的进程? 我们可以通过符号链接 symbolic link去实现,这个类似于windows系统中的某个exe文件…...

使用vscode+platformio搭建arduino开发环境

存在的问题&#xff1a; Arduino编译时会将所有的C文件都编译一遍造成编译很慢&#xff0c;一个简单的工程稍加修改有可能都需要三四分钟才能编译完成&#xff0c;同时arduino也不支持代码跳转查看功能&#xff0c;不方便代码查看。 解决方法&#xff1a; 使用vscodeplatfor…...

java后端接口实现302跳转

正常来说&#xff0c;接口返回String是"redirect:"url或者“r:”url就能实现前端接收到返回后自动302.但是我在自己的一个项目中这么写了之后发现返回的是纯字符串&#xff0c;很奇怪。 最后发现&#xff0c;如果你的controller层有RestController注解&#xff0c;那…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...