模拟面试

1.TCP通信中的三次握手和四次挥手过程

三次握手

1.客户端像向服务器端发送连接请求

2.服务器应答连接请求

3.客户端与服务器简历连接

四次挥手:

客户端或服务器端发起断开请求,这里假设客户端发送断开请求

1.客户端向服务器发送断开请求

2.服务器应答断开请求

3.服务器请求关闭连接

4.客户端发送确认应答

2.并发和并行的区别

并发:一个处理器同时处理多个任务。

并行:多个处理器同时处理多个不同的任务。

3.阻塞IO和非阻塞IO的区别

阻塞IO:若等待的事件没有发生,会一直阻塞等待,不会执行后序的任务

非阻塞IO:如果等待的事件没有发生,会立即返回,继续后序的任务

4.同步和异步的区别

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

同步:进程必须按顺序执行。例:如果该请求需要一段时间才能返回信息,那么该进程将会一直等待,直到收到返回信息才会继续执行

异步:多个任务执行没有先后顺序,可以并发执行。例:进程不需要一直等下去,而继续执行下面的操作,不管其他进程的状态。节约了时间,提高了效率。

但有些时候必要要用同步解决,就比如必须拿到返回的数据才能对后面进行操作。

5.详细描述IO多路复用的原理

引入目的:

        在有操作系统时,想多任务并发执行,可以使用多进程或多线程完成多任务并发执行。但在没有操作系统的情况下,就不能使用多进程和多线程,转而使用IO多路复用技术

原理:

        将多个阻塞任务的文件描述符,统一放入到一个检测容器中,然后用一个阻塞函数进行管理,如果检测容器中有一个或多个文件描述符对应的事件产生,就会解除阻塞,进而去执行相应的函数。

6.广播的相关内容

1.主机之间是一对多的通信模式,网络对其中的每一台主机都会进行消息转发

2.在当前网络下的所有主机都会收到广播消息(无论对方是否愿意接受)

3.广播的实现方式是基于UDP通信模型

4.广播地址:当前网络号+全1的主机号

5.广播消息不允许穿过路由器

7.组播的相关内容

1.广播是给同一网络下的所有主机发送消息,会占用大量的网络带宽,影响正常的网络通信

2.组播也是实现一对多的通信机制,只有加入了同一个小组的主机可以收到该组内发送的数据

3.组播也是通过UDP实现的

4.组播地址:D类网络(224.0.0.0---239.255.255.255)

8.在使用套接字通信时,客户端就一定不需要绑定操作吗

不一定,对于报式域套接字,如果不绑定套接字文件,系统不会自动绑定,发送数据没有问题,但是服务器不能向客户端发送信息

9.进程间通信的方式有哪些

套接字、共享内存、管道(有名管道、无名管道)、信号、信号灯集、消息队列

10.线程的同步互斥机制

在多任务操作系统中,同时运行的多个任务可能:

        都需要访问、使用同一种临界资源

        多个任务之间有依赖关系,某个任务的运行依赖于另一个任务

同步:进程必须按顺序执行

互斥:一个临界资源在同一时刻只能被一个进程或线程使用,不能同时使用。

线程之间,如果要进行通信,需要引入同步互斥机制,避免产生竞态。保证任何一个时刻,只有一个线程处理临界资源。

1.互斥锁:

对于要访问临界资源的线程,在访问之前要先申请互斥锁

互斥锁只能保证临界区完整,只有一个线程访问,但无法指定访问者的顺序

2.信号量(信号灯)

对于要访问临界资源的线程,都去执行申请信号量的操作

互斥锁又称为二值信号量,只允许一个线程进入临界区,即信号量的初始值为1

PV操作:实现线程、进程同步互斥

        P:申请信号量,减操作

        V:释放信号量,加操作

3.条件变量

将不访问共享资源的线程直接休眠,并设置一个唤醒条件,该唤醒条件称之为条件变量

当到线程需要访问的时候,其他线程通过制定的条件变量唤醒该线程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE(上)-Day6

JavaSE(上)-Day6 数组数组的定义数组的初始化打印数组分析数组索引数组内存图 方法方法的定义和调用方法的重载方法的内存图 二维数组二位数组的创建和初始化二维数组的内存图 数组 1.数组是一种容器,可以一次存储多个相同类型的数据 数组的…

opengl日记9-opengl使用纹理示例

环境 系统:ubuntu20.04opengl版本:4.6glfw版本:3.3glad版本:4.6cmake版本:3.16.3gcc版本:10.3.0 直接上代码 CMakeLists.txt cmake_minimum_required(VERSION 3.5) set(CMAKE_C_STANDARD 11) set(CMAKE_…

【linux线程(三)】生产者消费者模型详解(多版本)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux线程 1. 前言2. 初识生产…

【GameFramework框架内置模块】10、本地化(Localization)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q7…

哔哩哔哩秋招Java二面

前言 作者:晓宜 个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者 一面过后面试官叫我别走,然后就直接二面,二面比较简短,记录一下,希望可以…

绝地求生:现在购买通行证还能兑换成长型武器吗?

大家好,我闲游盒,这几天收到几位盒友的私信咨询我现在购买通行证还能获得一把成长型武器吗?我相信还有许多盒友也有此困惑,那我就在这统一回复了,目前距通行证和商城物资箱礼包下架还有最后16天时间,众所周…

js实现hash路由原理

一、简单的上下布局&#xff0c;点击左侧导航&#xff0c;中间内容跟对变化&#xff0c;主要技术使用js检测路由的onhashchange事件 效果图 二、话不多说&#xff0c;直接上代码 <!DOCTYPE html> <html lang"zh"><head><meta charset"…

FPGA控制AD7606_AD7606解读

目录 一、AD7606解读二、引脚说明三、时序图 一、AD7606解读 AD7606特点&#xff1a; 8通道同步采样模拟通道数为8分辨率&#xff1a;16bit&#xff0c;即最小采样的电压为5V/(2^16) 0,00007V&#xff0c;即数字量的1就代表模拟量的0,00007V&#xff0c;2代表0,00014V有效位数…

C语言易错知识点

1、数组长度及所占字节数 char x[] {"Hello"},y[]{H,e,l,l,o}; x数组的长度为5&#xff0c;y的长度也是5 x、y数组所占字符串为6为 51(\0)6 strlen&#xff08;&#xff09;函数得到的是数组的长度 2、%%与%的优先级 #include<stdio.h> int main(){ int a…

iOS图片占内存大小与什么有关?

1. 问&#xff1a;一张图片所占内存大小跟什么有关&#xff1f; 图片所占内存大小&#xff0c;与图片的宽高有关 我们平时看到的png、jpg、webp这些图片格式&#xff0c;其实都是图片压缩格式。通过对应的算法来优化了大小以节省网络传输与本地保存所需的资源。 但是当我们加…

再谈EMC Unity存储系统内存DIMM问题

以前写过一篇关于EMC Unity 存储系统的DIMM的介绍文章&#xff0c;但是最近还是遇到很多关于内存的问题&#xff0c;还有一些退货&#xff0c;所以有必要再写一篇关于EMC Unity 内存方面的问题&#xff0c;供朋友们参考。如果还有疑问&#xff0c;可以加vx&#xff1a;StorageE…

【黑马头条】-day01环境搭建SpringBoot-Cloud-Nacos

文章目录 1 环境搭建及简介2 项目介绍2.1 应用2.2 业务说明2.3 技术栈2.4 收获2.5 大纲 3 Nacos准备3.1 安装Nacos 4 初始工程搭建4.1 环境准备4.1.1 导入项目4.1.2 设置本地仓库4.1.3 设置项目编码格式 4.2 全局异常4.2.1 自动装配 4.3 工程主体结构 5 登录功能开发5.1 需求分…

echart多折线图堆叠 y轴和实际数据不对应

当使用 ECharts 绘制堆叠折线图时&#xff0c;有时会遇到 y 轴与实际数据不对应的问题。 比如明明值是50&#xff0c;但折线点在y轴的对应点却飙升到了二百多 解决办法&#xff1a; 查看了前端代码发现在echart的图表中有一个‘stack’的属性&#xff0c;尝试把他删除之后y轴的…

算法体系-11 第十一节:二叉树基本算法(上)

一 两链表相交 1.1 题目描述 给定两个可能有环也可能无环的单链表&#xff0c;头节点head1和head2。请实现一个函数&#xff0c;如果两个链表相交&#xff0c;请返回相交的 第一个节点。如果不相交&#xff0c;返回null 【要求】 如果两个链表长度之和为N&#xff0c;时间复杂…

静电无处不在:揭秘液晶显示屏静电防护的“大师级“策略

静电&#xff0c;仿佛是电子产品制造过程中的隐形杀手&#xff0c;尤其对于液晶显示屏等精密电子元器件的影响更是不可小觑。然而&#xff0c;面对这一挑战&#xff0c;有些制造商采取了一系列超越寻常的静电防护措施。今天&#xff0c;我们将揭开他们的"大师级"策略…

利用Android studio 查看模拟器中数据文件

打开Android studio &#xff0c;然后按照下图选择 然后会在右侧打开一个这样子的管理弹窗 找到 data/data/your project file 你的缓存跟下载的文件就都在里面了

BigDecimal保留两位小数失败问题

文章目录 背景问题解决如何测试代码 背景 测试时发现在线swagger测试会自动处理BigDecimal小数点后面的数字&#xff0c;就是有零的会都给你去掉&#xff0c;比如9.000与9.500到最后都会被swagger处理成9跟9.5。使用postman测是最准的&#xff0c;测出来的就是9.000跟9.500。 …

数据库基本内容与安装MySQL数据库

目录 一.数据库基本内容 1.数据 &#xff08;1&#xff09;描述事物的符号记录 &#xff08;2&#xff09;包括数字&#xff0c;文字、图形、图像、声音、档案记录等 &#xff08;3&#xff09;以“记录”形式按统一的格式进行存储 2.表 &#xff08;1&#xff09;将不同…

【Linux】基础 IO(动静态库)-- 详解

一、前言 为什么要使用别人的代码&#xff1f; 主要是为了提高程序开发的效率和程序的健壮性。 当别人把功能都实现了&#xff0c;然后我们再基于别人的代码去做二次开发&#xff0c;那么效率当然就提高了。其次&#xff0c;这里基于的别人当然不是随便找的一个人&#xff0c;…

[Qt学习笔记]Qt鼠标事件mouseMoveEvent实时获取图像的坐标和像素值

目录 1、介绍2、效果展示3、实现过程3.1 图像的加载和显示3.2 设置鼠标跟踪事件激活3.3 实现代码 4、源码展示 1、介绍 上一篇介绍了使用OpenCV的setMouseCallback回调函数实现获取鼠标点击点的图像坐标和像素值&#xff0c;本篇使用鼠标事件mouseMoveEvent函数来实现实时获取…