2021
09-16
09-16
解析Linux源码之epoll
目录一、前言二、简单的epoll例子2.1、epoll_create2.2、structeventpoll2.3、epoll_ctl(add)2.4、ep_insert2.5、tfile->f_op->poll的实现2.6、回调函数的安装2.7、epoll_wait2.8、ep_send_events三、事件到来添加到epoll就绪队列(rdllist)的过程3.1、可读事件到来3.2、可写事件到来四、关闭描述符(closefd)五、总结一、前言在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文...
继续阅读 >
目录一、一个最简单的Server端例子二、bind系统调用2.1、inet_bind2.2、inet_csk_get_port三、判断端口号是否冲突四、SO_REUSEADDR和SO_REUSEPORT五、SO_REUSEADDR六、SO_REUSEPORT七、总结一、一个最简单的Server端例子众所周知,一个Server端Socket的建立,需要socket、bind、listen、accept四个步骤。代码如下:voidstart_server(){//serverfdintsockfd_server;//acceptfdintsockfd;intcall_err;...
目录一、基本RPC框架简介1.1、RPC调用流程二、TarsJava客户端设计介绍2.1、TarsJava客户端初始化过程2.2、使用范例2.3、代理生成2.4、远程服务寻址方法2.5、网络模型2.6、远程调用交互模型2.6.1、写IO流程2.6.2、同步和异步调用的底层技术实现三、总结一、基本RPC框架简介在分布式计算中,远程过程调用(RemoteProcedureCall,缩写RPC)允许运行于一台计算机的程序调用另一个地址空间计算机的程序,就像调用本地程序一样,...
在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码对于java的api,一般是在下面的网址中进行查看https://docs.oracle.com/javase/8/docs/api/而对于java的源码,我们现在来演示查看nextLine()的源码:将鼠标放置在希望转跳到源码的函数上,等待系统浮现这个黄色的框然后点击下面的OpenDeclaration,即可进入源码的界面以下是源...
概述spring流行了很长时间了,是一个用java编写的轻量级框架,受到了很多公司及程序员的欢迎,Bean生命周期是一个对象从实例化开始到销毁的全过程,了解生命周期是很有必要的。重要性spring的生命周期是比较复杂的,只有了解其过程及原理才能更好的扩展程序。源码剖析生命周期过程bean的实例化属性填充及Aware接口检测设置依赖如果容器自定义了BeanpostProcessor的实现类,则执行处理器相应的前置处理bean实现了初始化接口Initlial...
认识SpringMVCSpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。SpringMVC处理请求过程 客户端发起请求,会首先经过前端控制器DispatcherServlet进行转发,转发到HandlerMappingDispatcherServlet从HandlerMapping查找处理请求的Controller,HandlerMapping...
在view文件中编写一个类,并配置好路由classTest(View):defget(self,request,*args,**kwargs):returnHttpResponse('cbv_get')defpost(self,request,*args,**kwargs):returnHttpResponse('cbv_post')url(r'test/',views.Test.as_view()),通过as_view()进入查看源码实际上views.Test.as_view()是存的一个内存地址,加括号被调用,执行了as_view方法里的view方法,具体看下图:核心是dispatch方法,在dispatch...