![花隐间](http://oss.yeas.fun/halo-yeas/big-bg2_1635645694223.jpg)
![像本服一样调用远程代码(跨进程远程RPC方法直调)](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Finews.gtimg.com%2Fnewsapp_bt%2F0%2F13436084638%2F1000.jpg&refer=http%3A%2F%2Finews.gtimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1642426648&t=3cb236f82a4cc30f5dc224f63e627de7)
想要调用远程方法,传统的方式需要以下几个步骤: 需要先判断是否是本服请求。如果是本服,则执行本服逻辑;如果是跨服,则需要把请求发到对应服务器上; 跨服务之间的消息通信; 消息发送到跨服之后,如何根据参数来调用对应的代码?
![多线程并发解决方案:替换synchronized锁解决死锁](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F2019-11-06%2F5dc2781dda84e.jpg&refer=http%3A%2F%2Fpic1.win4000.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1670327428&t=c95a884280f907e6f2b7bb80d53bd129)
在游戏开发过程中,多线程技术是非常重要的技术,多线程的引入最大的好处就是能解决游戏中的性能问题。 在加锁的逻辑上java提供的synchronized锁是非常简单而实用的,但随着业务逐渐增多且复杂,即使是简单的synchronized锁使用不合理也会引发死锁导致巨大的灾难。 在经历过线上的几次事故,最终引入了synchronized锁替换的解决方案,从根本上解决死锁问题。
![JAVA不停服执行代码(动态代码执行)](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2Ffe41128305c5b898083bdde95d5ba3fca6f6f8e6.jpg&refer=http%3A%2F%2Fi0.hdslb.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1639976374&t=cb77a75c2667f3a38a38a8e6e5133af3)
在项目上线之后,不可避免的会遇到出BUG的情况。之前的做法可能是提前写好一段代码,然后通过后台接口来进行调用。但这种方式必须得提前写好规整逻辑,但不能覆盖所有情况。因此我们就期望直接在线上执行一段代码,来进行我们业务数据的规整。这就是JAVA不停服在线上执行代码。
![JAVA热更新2:动态加载子类热更](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2F8e1c3554dadccaa1b11085fc36a92efc8730b22f.jpg&refer=http%3A%2F%2Fi0.hdslb.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1639059079&t=cd5de443063b0c1f18ed5642f7ad7230)
上一篇《JAVA热更新1:Agent热更》我们讲解了JDK提供的Agent方式来实现代码不停服更新,受限于JDK的Agent一些限制,这种方式无法实现以下功能:只能修改方法体,不能变更方法签名、不能增加和删除方法/类的成员属性。对于Instrumentation和JVM的agent...
去年花了一段时间阅读了《深入理解Java虚拟机》周志明版。读之前记得有一段评论说,这本书是Java虚拟机里面写的最经典的一本。整体读下来感觉评论还算中肯,这种理论型的书,一般看起来都会感觉枯燥乏味,但周志明这版逻辑清晰,叙述部分生动。尽管与平时业务开发不太相关,有些理论看起来还有点难以理解
![Mac上编译OpenJDK9源码](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2Fc8%2F0c%2F64%2Fc80c64dffb6f21e59f888a10cf2df607.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1670327340&t=4b6a075d7d39798e5546565c33f60691)
为什么编译可调式的OpenJdk源码学习一段时间JAVA之后,关于Java方面的知识总还能找到解决办法,但是一旦涉及到虚拟机,有的时候就茫然无头绪,不知道如何去解决,此时就需要一个可调试的虚拟机代码。同时想要更好的了解虚拟机原理,自己编译一个可debug的JVM则必不可少,本文就是介绍在mac上自己