V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  fantastM  ›  全部回复第 7 页 / 共 18 页
回复总数  343
1 ... 3  4  5  6  7  8  9  10  11  12 ... 18  
1. 了解传输层的网络协议 TCP/UDP
2. 看《 Netty in Action 》
3. 写个简单的 rpc 通讯框架
4. 看 Dubbo 、Kafka 之类的中间件源码,它们也是用 Netty 来做讯通的
2021-05-07 13:27:02 +08:00
回复了 LiuJiang 创建的主题 程序员 我是如何突围传统行业的?
相当受用
#3 @lshero 谢谢老哥,莫高窟的门票已经提前预定好了
2021-04-19 10:04:45 +08:00
回复了 ff1m80 创建的主题 程序员 请教一个后端开发问题,可能是多线程相关。
做异步处理不一定要另开一个线程,还有其它的方式,比如消息中间件
2021-04-09 13:14:48 +08:00
回复了 zealinux 创建的主题 程序员 Linux 怎么获得为什么 Java 进程退出的原因?
我遇到过类似的情况,排查之后的原因是内核的 OOM Killer https://i.imgur.com/kNYcDJO.png
2021-03-27 14:37:43 +08:00
回复了 killy 创建的主题 Java 关于线上 oom 问题的排查,请教大佬们!
是我的话,会先从慢 SQL 日志开始看起
2021-03-16 14:07:50 +08:00
回复了 phpxiaowangzi 创建的主题 服务器 想问下大家个人买了云服务器都做什么用呢?
跨域转发服务、自建 RSSHub 、小程序的后端服务

另外求一个解决方案:该如何把服务器上的日志同步到本地?日志会涉及轮转和压缩
#8 @Shazoo 感谢回复。我是准备学完 C 之后先看 Redis 的实现。
2021-03-04 13:41:04 +08:00
回复了 zhoudaiyu 创建的主题 程序员 问问大家关于软考的一些事
在「浙江软考」公众号上发现了一个「每日一练」的模块,可以用来感受一下题目,而且似乎改 uuid 可以切换题目...

http://www.zjrjks.org/weChat.do?method=pInfo&uuid=4303
#2 @Kasumi20 原来如此……其实 C 的语法层面容易理解,不过我会多想为什么要这样设计,就容易想偏。

#5 @Shazoo 感谢指点!学习操作系统 /编译原理之类的底层知识正是我这次学习 C 语言的目的,另外想再请教一下理解「将外部变量的 **声明** 与 **定义** 严格区分开来很重要。变量声明用于说明变量的属性(主要是变量的类型),而变量定义除此以外还将引起存储器的分配」这句话,需要哪些储备知识呢?

感谢各位回复。
2021-02-01 13:10:09 +08:00
回复了 zhuv730 创建的主题 分享创造 求解:树莓派为什么识别不到 5G 频段的 wifi
2021-01-29 13:48:11 +08:00
回复了 perpetually 创建的主题 问与答 男生,从寸头开始留长发 18 个月了
我是从 18 年国庆开始留发的,一年差不多的时候可以扎起来。在老家市里逛商场的时候,带着那种夹夹的耳钉,在路上和妹子四眼相对的概率特别高...
2021-01-27 17:56:09 +08:00
回复了 yeyuefeng 创建的主题 奇思妙想 你听过“伤害性不高,侮辱性极强”的一句话是啥
涨薪 500
2021-01-27 14:30:52 +08:00
回复了 Cbdy 创建的主题 Java 求一个 Java 面试题的最佳实践
#10 说的方案是可行的,并且是基于 CAS 无锁的

https://gist.github.com/fantasticmao/f78ae0016a81877cf5019d9c22c81c73
简单回答:可以在 agent 中自定义类加载器,避免遵循 Java 类加载器中的双亲委派模型。

详细回答:
JVM 加载类是按照双亲委派模型来执行的,每个类都会优先委托给父类加载器来加载,当父类加载器无法加载类的时候再由子类加载器来加载,因此在 JVM 中加载的类会有一种层级关系。

在你的例子中 `ThreadPoolExecutor` 会由 BootStrap ClassLoader 加载,参数 -javaagent 指定的 baselog.jar 包默认会由 System ClassLoader 加载,所以你一开始描述的问题原因是:`ThreadPoolExecutor` 类在被 BootStrap ClassLoader 加载之后链接的时候,无法找到需要被 System ClassLoader 加载的 baselog.jar 包里的 `MDCInheritableThreadLocal`。(注意这个问题是发生在链接阶段,这也是 JVM 为什么抛了 `NoClassDefFoundError` 而不是 `ClassNotFoundException` 的原因)

然后你将 baselog.jar 包指定为由 BootStrap ClassLoader 加载,这样的话,`ThreadPoolExecutor` 类在被 BootStrap ClassLoader 加载、链接、初始化的时候,就可以找到同样是被 BootStrap ClassLoader 加载的 `MDCInheritableThreadLocal` 了。

你在 #7 里说的事情,我理解为是你在 baselog.jar 包里用到了「项目中的引入的 jar 」(可能是 Spring 之类的吧),这部分包不由是 BootStrap ClassLoader 加载的,可能是 System ClassLoader,也可能是 Tomcat 的 Webapp ClassLoader,所以自然也会有 `ClassNotFoundException` 的问题。解决方案的话,我不建议把这类包也指定为由 BootStrap ClassLoader 来加载,更好的解决方案是自定义类加载机制,破坏一下 Java 类加载器中的双亲委派模型。

具体实现的话,可以借鉴一些分布式追踪 APM 系统,它们在采集应用的数据时候,使用的无侵入式方案也是 javaagent,也会对项目中的一些代码做改造。

一些可供查阅的资料:
https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html
在启动参数里用 -javaagent 的话,确实是如 #3 说的类加载问题。可以用 arthas 的 sc 、classloader 之类的命令来查看类的加载情况
2021-01-25 01:57:14 +08:00
回复了 James369 创建的主题 Linux 为什么终端有那么多的名称?
kernel 、system call 、shell 这几个的关系,看这段描述应该就清楚了

https://i.imgur.com/pPw6ldg.png
2021-01-19 11:21:44 +08:00
回复了 gengzi 创建的主题 Java 请教一个问题, threadPoolExecutor.execute()能被 AOP 增强吗?
@eaglewangl37670 #7 不妨看看我博客里的这篇文章,对线程池的源码分析得更多 :)

https://blog.fantasticmao.cn/2020/10/01/java-threadpoolexecutor-源码分析 /
2021-01-18 20:42:00 +08:00
回复了 gengzi 创建的主题 Java 请教一个问题, threadPoolExecutor.execute()能被 AOP 增强吗?
> 想在线程执行前,执行后,做一些事情

ThreadPoolExecutor 内部提供了两个钩子方法 beforeExecute(Thread, Runnable) 和 afterExecute(Runnable, Throwable),正好符合你的需求。具体的看源码就清楚了 https://github.com/openjdk/jdk/blob/jdk8-b21/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java#L1098-L1130
2021-01-15 11:31:26 +08:00
回复了 bigpigeon 创建的主题 Linux rocketmq 踩坑和吐槽
对于第一点,据我了解,Kafka 中的分区和消费者也是这种设计。这样做的原因估计是在实现上会简单很多吧
1 ... 3  4  5  6  7  8  9  10  11  12 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2708 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 11:34 · PVG 19:34 · LAX 03:34 · JFK 06:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.