首页 > 其他分享 >Web服务器项目中常问的开放性问题

Web服务器项目中常问的开放性问题

时间:2023-08-29 11:34:19浏览次数:56  
标签:Web 编程 使用 线程 Linux 服务器 多线程 开放性



文章目录

  • 一、对后端开发的看法?
  • 二、为什么要做静态http服务器?
  • 三、为什么要使用ET模式?
  • 四、多线程编程的注意事项
  • 1、为什么要用多线程
  • 2、多线程编程的特点
  • 3、确保线程安全的几种方式
  • 4、与多线程有关的编程方法
  • 五、使用Linux系统有什么好处?
  • 六、对云计算的看法?
  • 七、服务器突然崩溃退出,怎么处理?
  • 八、服务器突然运行很慢怎么处理?
  • 九、线程池中只有几个线程能响应1万+的用户吗?


一、对后端开发的看法?

提起后端,不免要说到前端,前端主要是负责与用户直接打交道,更多的是做一些交互,用户的请求一般是提交到后端进行处理,后端主要负责逻辑处理。C++后端开发首先是要对C++语言比较熟悉;还要熟悉网络编程,因为有时候需要处理高并发任务;现在的后台程序一般是运行在linux操作系统上,所以需要了解linux操作系统的基本知识、工具的使用、代码的编译等等。最后如果熟悉一门脚本语言,会更利于工作了。

二、为什么要做静态http服务器?

了解基本网络服务器的开发过程,熟悉reactor模式、基本的网络编程方法、TCP/IP协议和HTTP协议、C++的语法、多线程以及Linux下的各种工具的使用。

三、为什么要使用ET模式?

ET模式由于数据到来才会,所以相比LT模式减少了触发次数,避免了busy-loop,效率会比LT模式高很多,但是编程也变得更复杂了。

由于采用ET模式,read、write和accept的时候必须采用循环的方式,直到error==EAGAIN为止,防止漏读等清况。

四、多线程编程的注意事项

1、为什么要用多线程

多线程可以发挥多核CPU的优势(并行执行),达到充分利用CPU的目的因为多线程如果在单cpu中其实也是顺序执行的,只不过是系统帮我们切换执行顺序而已,其实并没有快

2、多线程编程的特点

  • 当前线程随时有可能被切换出去,或者说被抢占了,当我们使用公共资源的时候尤其要注意线程安全性,一般可以锁来保证线程安全
  • 多线程程序中事件的发生没有一个固定的顺序

3、确保线程安全的几种方式

  • 原子操作;
  • 同步与锁;
  • 使用可重入函数。

4、与多线程有关的编程方法

掌握多线程的创建与销毁、锁机制和条件变量的使用

五、使用Linux系统有什么好处?

  • Linux系统是开源的,这意味着我们可以对Linux系统进行定制化开发;
  • Linux系统安全、稳定性强,很多服务端的程序都是跑在Linux系统上的。

六、对云计算的看法?

  • 云计算就是一种位于云端的计算模式,把零散的硬件资源进行重新分配,我们在使用自己电脑的时候内存和性能都是有限制的,那么我们就可以申请云端服务器资源;
  • 云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS)【硬件服务器租用】,平台即服务(PaaS)【软件的定制化应用】和软件即服务(SaaS【云服务器】)

Web服务器项目中常问的开放性问题_多线程

七、服务器突然崩溃退出,怎么处理?

在Linux系统下使用CoreDump调试,如果程序有段错误会在当前目录下生成core文件(ulimit -c unlimited),然后使用gdb调试core文件(gdb a.out core),找到Segmentation fault这些信息

八、服务器突然运行很慢怎么处理?

先查看后台服务器的运行状态,包括磁盘,CPU,内存的使用情况等(top,free)。如果是磁盘满了,做好备份,清理下磁盘;如果是CPU的问题,查找下占用率较高的进程,kill掉与系统应用无关的进程

还有一种情况可能是close_wait或者time_wait状态过多了,消耗了服务器的资源,使用netstat命令查看下网络连接的状态。

九、线程池中只有几个线程能响应1万+的用户吗?

可以,一个连接到来由线程池中某个线程去处理,处理完毕后回到线程池继续接收连接,如果响应很慢可以加大线程池中线程的数量


标签:Web,编程,使用,线程,Linux,服务器,多线程,开放性
From: https://blog.51cto.com/u_6526235/7273897

相关文章

  • spring boot WebSocket @ServerEndpoint注解标识的class无法获取spring容器中的bean
    在@ServerEndpoint类中直接使用@Autowired注解注入Spring管理的bean可能不会成功,因为@ServerEndpoint并不受Spring容器的管理。通过创建一个静态的成员遍历属性和一个带有@Autowired注解的setter方法,你可以在类加载时将bean注入到静态属性中。但是,请注意这样做......
  • 怎么搭建web组态
    web组态是指通过可视化拖拽组件的方式,低代码搭建监控大屏、web页面。物联网各行业的数据以及监控场景,每个行业的业务不同,需要展示的页面也不同。组态快速搭建页面的优势,能更好的满足不同定制化监控页面的需求。BY组态软件,专注于能源电力、工业互联网、智能制造、原型设计等领域的......
  • Web组态可视化软件之BY组态可视化平台介绍
    Web组态可视化软件之BY组态可视化平台介绍关于组态软件,首先要从组态的概念开始说起。 什么是组态组态(Configure)的概念来自于20世纪70年代中期出现的第一代集散控制系统(DistributedControlSystem),可以理解为“配置”、“设定”、“设置”等,是指通过人机开发界面,用类似“搭积木”......
  • 【内部】服务器使用
    服务器参数服务器虚拟ip:10.242.0.2前期准备:Zerotier下载链接网络:打开zerotierone环境配置:ssh登陆:ssh用户名@服务器ip输入密码输入condaenvlist查看当前环境输入condacreate-n环境名python=3.X(输入python版本)pycharm远程连接:参考python:解释器位置/hom......
  • RTSP/Onvif流媒体服务器EasyNVR视频监控汇聚平台配置鉴权的具体操作流程
    视频监控汇聚平台EasyNVR是基于RTSP/Onvif协议的视频平台,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求,我们也提供了丰富的API接口供用户调用。有需要的用户可参照官方接口......
  • Unity UnityWebRequest.Post传参Json数据
    UnityWebRequest.PostUnity中的HTTP通信主要依赖的是Unity自带的UnityWebRequest类,之前的WWW类已被弃用Post请求,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。对应的调用方法:UnityWebR......
  • Fooocus:一个简单且功能强大的Stable Diffusion webUI
    StableDiffusion是一个强大的图像生成AI模型,但它通常需要大量调整和提示工程。Fooocus的目标是改变这种状况。Fooocus的创始人LvminZhang(也是ControlNet论文的作者)将这个项目描述为对“StableDiffusion”和“Midjourney”设计的重新设计。Fooocus就像是Midjourney的免费离线......
  • JavaWeb-cnblog
    javaweb基础HTML和CSS<fontcolor=""size=""face=""></font><br>//换行<hr>//无序//有序//超链接//Javaweb相对路径表//表格//行//列1.11.2..tr行标签th表头标签td单元格标签b加粗cellspacing单元格间距colspan=“#”表跨#列合并row......
  • 使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命
    引言十年前,无服务器架构还像是痴人说梦。不再如此了!有了AmazonLambda,我们现在可以建构和运行应用程序而不需要考虑服务器。云供应商会无缝地处理所有服务器的供应、扩展和管理。我们只需要关注代码。这为云部署带来了前所未有的敏捷性、自动化和优化。但是,要发挥它的全部......
  • 戴尔13G-14G 服务器sn号修改方法
    第一种方法:跳线帽跳接ActionPlanDescr: UpdateServiceTagforDellPowerEdge–13thGenerationandUpToolsRequired:StandardToolboxTimeneededforActivity: 20min.Downtimeneeded: YESProcedure:Withsystempoweredoffaccessthesystemboardandloca......