草庐IT

$FallbackHome机制

全部标签

gRPC(Google远程过程调用)根据.proto文件生成代码机制(grcp_cpp_plugin插件)详解。

    这几天一直在研究grpc,谷歌的远程调用系统,这套系统谷歌开源在了github上,直接搜索grpc,star最高的就是项目本尊,我怀着好奇的心情去研究它,却被它蹂躏的很惨,道一句“珍爱生命,远离谷歌”。本篇大概分为这几部分:grpc项目的编译、简单样例的使用、grpc自动生成通讯代码浅谈、总结。目录一、Windows平台下编译grpc1.代码下载2.代码编译二、 简单样例的使用1.VS内依赖的配置2.demo的调用过程  三、代码生成机制 1.Protoc部分2.代码生成的插件部分(grpc_cpp_plugin)总结一、Windows平台下编译grpc        环境准备:   

重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。AQS全称AbstractQueuedSynchronizer,即抽象队列同步器,是一种用来构建锁和同步器的框架。我们常见的并发锁ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁。当我仔细研究AQS底层加锁原理,发

重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。AQS全称AbstractQueuedSynchronizer,即抽象队列同步器,是一种用来构建锁和同步器的框架。我们常见的并发锁ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁。当我仔细研究AQS底层加锁原理,发

Java 继承和多态的重点&动态绑定机制&instanceOf(看源码必备知识!)

在看集合源码的时候,因为对继承和多态的知识有些模糊,导致看源码比较吃力。所以重新回顾一下面向对象的继承和多态,顺便记录一下重点。继承子类会继承父类的所有属性和方法,但私有属性和方法在子类不能直接访问,需要通过父类提供的公共方法访问;子类必须调用父类的构造器,完成父类的初始化(创建子类对象时会调用父类的无参构造器,其实在子类的无参构造方法的第一行默认有super());创建子类对象时,不管子类使用有参构造还是无参构造,默认情况下总会去调用父类的无参构造。如果父类没有写无参构造器(当父类写了有参构造器而没写无参构造器,那么无参构造器就没有了),那么子类的构造器要用super()指定使用父类的什么构

Java 继承和多态的重点&动态绑定机制&instanceOf(看源码必备知识!)

在看集合源码的时候,因为对继承和多态的知识有些模糊,导致看源码比较吃力。所以重新回顾一下面向对象的继承和多态,顺便记录一下重点。继承子类会继承父类的所有属性和方法,但私有属性和方法在子类不能直接访问,需要通过父类提供的公共方法访问;子类必须调用父类的构造器,完成父类的初始化(创建子类对象时会调用父类的无参构造器,其实在子类的无参构造方法的第一行默认有super());创建子类对象时,不管子类使用有参构造还是无参构造,默认情况下总会去调用父类的无参构造。如果父类没有写无参构造器(当父类写了有参构造器而没写无参构造器,那么无参构造器就没有了),那么子类的构造器要用super()指定使用父类的什么构

从XXE漏洞修复引起Not supported: http://javax.xml.XMLConstants/property/accessExternalDTD说到SPI机制

引子   在使用Fortify扫描时代码报XMLExternalEntityInjection,此漏洞为xml实体注入漏洞,XXE攻击可利用在处理时动态构建文档的XML功能。修复方案也包含了增加安全配置,使它不允许将外部实体包含在传入的XML文档中。  具体在修复过程中,代码在解析drools的transfer.xls时,调用代码中增加内容,包括serFeature和setAttributeTransformerFactoryfactory=TransformerFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SE

从XXE漏洞修复引起Not supported: http://javax.xml.XMLConstants/property/accessExternalDTD说到SPI机制

引子   在使用Fortify扫描时代码报XMLExternalEntityInjection,此漏洞为xml实体注入漏洞,XXE攻击可利用在处理时动态构建文档的XML功能。修复方案也包含了增加安全配置,使它不允许将外部实体包含在传入的XML文档中。  具体在修复过程中,代码在解析drools的transfer.xls时,调用代码中增加内容,包括serFeature和setAttributeTransformerFactoryfactory=TransformerFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SE

【Java面试】什么是IO的多路复用机制?

“什么是IO的多路复用机制?”这是一道年薪50W的面试题,很遗憾,99%的人都回答不出来。大家好,我是Mic,一个工作了14年的Java程序员。今天,给大家分享一道网络IO的面试题。这道题目的文字回答已经整理到了15W字的面试文档里面,大家可以S我领取。下面看看高手的回答。高手:IO多路复用机制,核心思想是让单个线程去监视多个连接,一旦某个连接就绪,也就是触发了读/写事件。就通知应用程序,去获取这个就绪的连接进行读写操作。也就是在应用程序里面可以使用单个线程同时处理多个客户端连接,在对系统资源消耗较少的情况下提升服务端的链接处理数量。在IO多路复用机制的实现原理中,客户端请求到服务端后,此时客

【Java面试】什么是IO的多路复用机制?

“什么是IO的多路复用机制?”这是一道年薪50W的面试题,很遗憾,99%的人都回答不出来。大家好,我是Mic,一个工作了14年的Java程序员。今天,给大家分享一道网络IO的面试题。这道题目的文字回答已经整理到了15W字的面试文档里面,大家可以S我领取。下面看看高手的回答。高手:IO多路复用机制,核心思想是让单个线程去监视多个连接,一旦某个连接就绪,也就是触发了读/写事件。就通知应用程序,去获取这个就绪的连接进行读写操作。也就是在应用程序里面可以使用单个线程同时处理多个客户端连接,在对系统资源消耗较少的情况下提升服务端的链接处理数量。在IO多路复用机制的实现原理中,客户端请求到服务端后,此时客

day08-SpringMVC底层机制简单实现-04

SpringMVC底层机制简单实现-04https://github.com/liyuelian/springmvc-demo.git8.任务7-完成简单视图解析功能说明:通过目标方法返回的String,转发或重定向到指定页面8.1分析原生的SpringMVC使用视图解析器来对Handler方法返回的String(该String会转为视图类)进行解析,然后转发或重定向到指定页面。这里为了简化,直接在自定义的前端控制器编写方法完成视图解析器的功能。8.2代码实现(1)修改MyDispatcherServlet的executeDispatch方法部分代码://编写方法,完成分发请求privatev