那些分不清的编程术语

序列化/反序列化

定义及相关概念

序列化和反序列化属于通讯协议的一部分。通讯协议往往采用分层模型,不同模型每层的功能定义以及颗粒度不同。例如:TCP/IP协议是一个四层协议,而OSI模型却是七层协议模型。在OSI七层协议模型中展现层(Presentation Layer)的主要功能是把应用层的对象转换成一段连续的二进制串,或者反过来,把二进制串转换成应用层的对象——这两个功能就是序列化和反序列化。

  • 序列化:将数据结构或对象转换成二进制串的过程
  • 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程

数据结构、对象与二进制串

不同的计算机语言中,数据结构、对象、二进制串的表示方式不同。

  • 数据结构和对象:对于类似Java这种完全面向对象的语言,工程师所操作的一切都是对象(Object),来自于类的实例化。在Java语言中最接近数据结构的概念,就是POJO(Plain Old Java Object)或者Javabean——那些只有setter/getter方法的类。而在C++这种半面向对象的语言中,数据结果和structural对应,对象和class对应。
  • 二进制串:序列化所生成的二进制串指的是存储在内存中的一块数据。C++语言具有内存操作符,所以二进制串的概念容易理解。例如:C++语言的字符串可以直接呗传输层使用,因为其本质上就是以“\0”结尾的存储在内存中的二进制串。在Java语言中,二进制串的概念容易和string混淆。实际上string是Java的一种特殊对象。对于跨语言间的通讯,序列化后的数据当然不能是某种语言的特殊数据类型。二进制串在Java里面所指的是byte[],byte是Java的8种原生数据类型之一(Primitive data types)。

并行/并发

并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或者多个事件在同一时间间隔内发生。

  • 并发的实质是一个物理CPU(也可以多个物理CPU)在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。并发是在同一个CPU上同时运行多个程序(cpu在多个程序之间切换)
  • 并行性是指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同意时刻可在不同CPU上同时执行。(并行是每个cpu运行一个程序)

同步/异步

进程同步用来实现程序并发执行时候的可再现性。

概念

  • 进程同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件事一件事做,等前面一件做完了才能做下一件事。其实绝大多数函数都是同步调用。但一般而言,我们再说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。例如:SendMessage,该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完以后,该函数才把消息处理函数所返回的result值返回给调用者。
  • 异步:异步的概念和同步相对,但一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。以casycsocket类为例(注意,csocket从casyncscoket派生,但是其功能已经从异步转化为同步),当一个客户端通过调用connect函数发出一个连接请求后,调用者线程立刻可以朝下运行。当连接真正建立起来后,socket底层会发送一个消息通知对象。

同步阻塞与异步阻塞

同步是阻塞模式,异步是非阻塞模式。

  • 同步是指两个线程的运行是相关的,其中一个线程要阻塞等待另外一个线程的运行。同步是指:发送方发出数据后,等接收方发回响应以后才发送下一个数据包的通讯方式。
  • 异步是指两个线程毫无相关,自己运行自己的。异步是指:发送发发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
时间: 2024-10-13 05:00:54

那些分不清的编程术语的相关文章

Web前端后端傻傻分不清,

1. Web前端后端傻傻分不清 原创 2016年12月25日 19:50:08 7178 0 2 前言 ??做C开发将近六年,基本上没有接触过web相关的东西,原来听别人说web相关的东西的时候也是分不太清楚到底哪个是前端哪个是后台,前端和后台又是怎么配合着工作的?经过各方法搜索,很多类似的疑问终于得以弄明白. ??使用html.Javascript写的是Web前端,它不用向服务器(比如apache.nginx.tomcat等)交互在浏览器端就执行完了,比如使用Javascript弹出一个警告框

断言(编程术语)

断言(编程术语) 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言.同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言. 使用断言可以创建更稳定.品质更好且 不易于出错的代码.当需要在一个值为FALSE时中断当前操作的话,可以使用断言.单元测试必须使用断言(Junit/JunitX). 中文名 断言 外文名 asse

谈一谈让人傻傻分不清的1G,2G,3G,4G……

浅谈让人傻傻分不清的1G,2G,3G,4G-- 虽然大学里学过计算机网络,平时也总是看网上不停的喷着1G,2G,3G,4G到底是啥,但总觉得隔靴搔痒,看不出其本质区别,我不想详解其中的又臭又长的关键技术,就从大家能看明白的概念上说一说这些不同代网络技术的区别. 先从概念和区别说起 1G:没啥好说的,估计是有了后来的2.3G,才想起称呼原来的为1G.1G采用FDMA(模拟和频分多址技术),可实现区域的移动性服务,代表是第一代模拟制式手机,大哥大,通话锁定在一定频率,使用可调频电台就可以窃听电话,保

assert(编程术语)

assert(编程术语) 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式.断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真.可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言.同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言. 中文名 assert 前置条件断言 代码执行之前必须具备的特性 解    释 维护,坚持;主张拥有等 注    意 assert是宏,而不是函数 目录

分不清电商小程序模板和定制的区别?

当商户们找开发公司做微信电商小程序时,一般会有两种选择:电商小程序模板与电商小程序定制.不少商家分不清电商小程序模板和定制的区别,今天木鱼小编就和大家科普一下. 1.电商小程序模板 电商小程序模板大多是已经开发好的行业小程序模板,这种模板所有的功能已经固定.选择电商小程序模板流程简单,可以快速上线.但这类模板面对的不止是一个商家,而是一个行业.服务商在开发的时候都是针对行业进行开发,只考虑这个行业有可能使用到的功能,而不是针对具体的商家和业务进行开发.所以这些行业模板基本上无法体现不同商家及业务

[转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for=pc关于UX测试相关的: 之前一直搞的不是很清楚 这个百家号的解释挺好的 简单转帖一下 以后仔细研究,  设计师充电站 18-07-1308:58 72DPI的图片拿去打印会糊吗?手机拍出来的照片是多少DPI?PS里显示72PPI为什么另存为JPG就变成96DPI了? 类似的问题层出不穷.本站很多篇文章都讲到

今天我看了一个H5游戏EUI的例子,我都快分不清我到底是在用什么语言编译了代码了,作为刚刚学习H5游戏开发的菜鸟只能默默的收集知识

今天看了一个EUI的demo,也是接触H5游戏开发的第五天了,我想看看我能不能做点什么出来,哎,自己写果然还是有问题的.在看EUI哪一个demo的时候就遇见了一些摇摆不定的问题,我觉得提出来 1.toast 当时看见它的时候我不确定是不是我以为的那样,所以就百度了一下,果然它就是我印象中android里面的一种显示信息的机制.(ps:真的是一门汇聚大千语言的技术啊)toast是没有焦点的而且toast显示的时间有限,过一会儿就会自动消失.toast主要用于向用户显示提示消息.项目中它用了一个To

OCA,OCP,OCM傻傻分不清?

可能大家知道OCA.OCP.OCM的关系是一个比一个难考,一个比一个含金量高,但是你知道具体的考试科目.考试方式.就业形势区别吗?不知道的话这篇通俗易懂的文章会让你一目了然. 区别一:含金量 ■OCA:数据库专业人员踏上Oracle数据库认证之途的第一步 表示具备Oracle数据库管理的基础知识. ■OCP:数据库专业人员掌握Oracle专项技术的行业认可证明,证明持证者能够以最高效的方式建立和管理关键的Oracle数据库功能. ■OCM:针对在Oracle技术领域拥有多年实践经验,并且经过高级

ERP系统和MES系统,不要傻傻分不清

公司说最近要上一套erp系统,说让我比较一下,erp系统哪个好,还有mes系统,我们适合上哪个系统,其实我还真的不太懂,刚接触erp跟mes的时候,对于两者的概念总是傻傻分不清楚,总是觉得既然都是为企业的信息化做贡献,那区别又是在哪儿呢? 然后经过一系列的搜索,现在终于有了一些概念了. 好吧,细细说来,ERP系统以供应链管理为核心,以销售部门和采购部门为信息源头,以设备.人力等其它系统为基础,使信息流在ERP内部得到有效的传递和集成. 产线上的数据采集,产品在生产流程中的数据跟踪等这部分属于ME